【发布时间】:2014-03-25 23:43:28
【问题描述】:
我已经使用 plt.plot() 从我正在使用的数据创建了一个散点图,我想知道是否有一种简单的方法可以根据它们在 x 轴上的位置为点着色?例如,如果它们位于 x0 和 x1 之间,则使它们变为绿色,x1 和 x2 使它们变为蓝色等。有帮助吗?干杯
【问题讨论】:
标签: python matplotlib
我已经使用 plt.plot() 从我正在使用的数据创建了一个散点图,我想知道是否有一种简单的方法可以根据它们在 x 轴上的位置为点着色?例如,如果它们位于 x0 和 x1 之间,则使它们变为绿色,x1 和 x2 使它们变为蓝色等。有帮助吗?干杯
【问题讨论】:
标签: python matplotlib
你可以使用plt.scatter:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("white")
x, y = np.random.multivariate_normal([0, 0], [(1, .5), (.5, 1)], 200).T
c = np.where(x < 0, "#27ae60", "#2980b9")
plt.scatter(x, y, 30, c)
sns.despine()
【讨论】:
plt.plot(semilogx 在幕后使用),您将必须对数据进行分箱并分别绘制每个分箱。使用scatter,您可以为每个点传递一组颜色。对于您的情况,您可以在使用scatter 绘图之前执行ax.set_xscale("log")。
30 是点的大小,两个十六进制数字是与您看到的绿色和蓝色相对应的颜色。查看plt.scatter 的文档字符串以获取更多信息。