Matplotlib scatterplot; 颜色作为第三variables的函数
我想要做一个scatterplot(使用matplotlib)其中的点根据第三个variables着色。 我已经非常接近这个:
plt.scatter(w, M, c=p, marker='s')
其中w和M是数据点,p是我想遮蔽的variables。
不过我想用灰度而不是颜色来做。 谁能帮忙?
没有必要手动设置颜色。 相反,请指定一个灰度色彩表…
import numpy as np import matplotlib.pyplot as plt # Generate data... x = np.random.random(10) y = np.random.random(10) # Plot... plt.scatter(x, y, c=y, s=500) plt.gray() plt.show()
或者,如果您更喜欢更广泛的色彩映射 ,则还可以指定cmap
kwarg进行scatter
。 要使用任何这些的反转版本,只需指定它们中的任何一个的“ _r
”版本。 例如gray_r
而不是gray
。 有几个不同的灰度gist_yarg
映射预先(例如gray
, gist_yarg
, binary
等)。
import matplotlib.pyplot as plt import numpy as np # Generate data... x = np.random.random(10) y = np.random.random(10) plt.scatter(x, y, c=y, s=500, cmap='gray') plt.show()
在matplotlib中,灰色可以以0-1之间的数字值的stringforms给出。
例如c = '0.1'
然后,您可以将第三个variables转换为此范围内的值,并使用它来为您的点着色。
在下面的例子中,我用点的y位置作为确定颜色的值:
from matplotlib import pyplot as plt x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [125, 32, 54, 253, 67, 87, 233, 56, 67] color = [str(item/255.) for item in y] plt.scatter(x, y, s=500, c=color) plt.show()