matplotlib 绘制多个散点图,每个散点图由不同的第三变量着色
matplotlib Plot multiple scatter plots, each colored by different thrid variable
我正在尝试在单个散点图上绘制多对数据,每对数据由不同的第三个变量数组着色。着色似乎适用于第一个情节,然后对第二个和第三个情节无效。
如有任何帮助,我们将不胜感激
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()
我删除了 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()
问题是您的颜色图正在针对每个绘图命令重新规范化。还。作为风格问题,jet
基本上从来都不是正确的颜色图。所以试试这个:
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()
制作一个漂亮的情节:
我正在尝试在单个散点图上绘制多对数据,每对数据由不同的第三个变量数组着色。着色似乎适用于第一个情节,然后对第二个和第三个情节无效。
如有任何帮助,我们将不胜感激
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()
我删除了 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()
问题是您的颜色图正在针对每个绘图命令重新规范化。还。作为风格问题,jet
基本上从来都不是正确的颜色图。所以试试这个:
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()
制作一个漂亮的情节: