[英]matplotlib Plot multiple scatter plots, each colored by different thrid variable
I'm trying to plot multiple pairs of data on a single scatter plot, each colored by a different third variable array. 我正在尝试在单个散点图上绘制多对数据,每对数据由不同的第三变量数组着色。 The coloring seems to work for the first plot, then fails for the second and third. 着色似乎适用于第一个图,然后不适用于第二个和第三个图。
Any help would be appreciated 任何帮助,将不胜感激
import matplotlib.pyplot as plt
jet=plt.get_cmap('jet')
x = [1,2,3,4]
y = [1,2,3,4]
z = [1,1,1,1]
a = [2,3,4,5]
b = [1,2,3,4]
c = [2,2,2,2]
d = [3,4,5,6]
e = [1,2,3,4]
f = [3,3,3,3]
plt.scatter(x, y, s=100, c=z, cmap=jet)
plt.scatter(a, b, s=100, c=c, cmap=jet)
plt.scatter(d, e, s=100, c=f, cmap=jet)
plt.clim(0,5)
plt.colorbar()
plt.show()
I have removed the plt.clim(0,5) line and added minimal and maximal values for all plots and that seems to work. 我删除了plt.clim(0,5)行,并为所有图添加了最小值和最大值,这似乎可行。
import matplotlib.pyplot as plt
jet=plt.get_cmap('jet')
x = [1,2,3,4]
y = [1,2,3,4]
z = [1,1,1,1]
a = [2,3,4,5]
b = [1,2,3,4]
c = [2,2,2,2]
d = [3,4,5,6]
e = [1,2,3,4]
f = [3,3,3,3]
plt.scatter(x, y, s=100, c=z, vmin=1, vmax=5, cmap=jet)
plt.scatter(a, b, s=100, c=c, vmin=1, vmax=5, cmap=jet)
plt.scatter(d, e, s=100, c=f, vmin=1, vmax=5, cmap=jet)
plt.colorbar()
plt.show()
The problem is that your colormap is being renormalized for each of your plot commands. 问题在于您的色图正在针对每个绘图命令进行重新规范化。 Also. 也。 As a matter of style, jet
is basically never the right colormap to use. 就样式而言, jet
永远都不是正确使用的颜色图。 So try this: 所以试试这个:
import matplotlib.pyplot as plt
jet=plt.get_cmap('coolwarm')
x = [1,2,3,4]
y = [1,2,3,4]
z = [1,1,1,1]
a = [2,3,4,5]
b = [1,2,3,4]
c = [2,2,2,2]
d = [3,4,5,6]
e = [1,2,3,4]
f = [3,3,3,3]
plt.scatter(x, y, s=100, c=z, cmap=jet, vmin=0, vmax=4)
plt.scatter(a, b, s=100, c=c, cmap=jet, vmin=0, vmax=4)
plt.scatter(d, e, s=100, c=f, cmap=jet, vmin=0, vmax=4)
plt.clim(0,5)
plt.colorbar()
plt.show()
Makes a nice plot: 做出一个不错的情节:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.