我有一个代码,可以为我提供预测值与实际值作为浓度函数的散点图。数据是从 Excel csv 电子表格中提取的。
这是代码:
import matplotlib.pyplot as plt
from numpy import loadtxt
dataset = loadtxt("ColorPlot.csv", delimiter=',')
x = dataset[:,0]
y = dataset[:,1]
z = dataset[:,2]
scaled_z = (z - z.min()) / z.ptp()
colors = plt.cm.viridis(scaled_z)
sc=plt.scatter(x, y, c=colors)
plt.clim(0, 100)
plt.colorbar()
plt.xlabel("Actual")
plt.ylabel("Predicted")
plt.show()
And with this I get a nice graph:
但是,如果我将颜色更改为类似的颜色
colors = plt.cm.plasma(scaled_z)
我得到下面的图表,但颜色条保持不变。
我尝试了很多不同的东西,例如 cmap 或 edgecolors,但我不知道如何更改它。我希望保持代码像现在一样简单,因为我想根据我的 Excel 电子表格数据轻松更改 z 的第三个变量。
还有一种方法可以让颜色条的比例从 Excel 电子表格中获取比例,而无需我手动指定 0-100?
要获得正确的颜色条,请使用以下代码:
colormap = plt.cm.get_cmap('plasma') # 'plasma' or 'viridis'
colors = colormap(scaled_z)
sc = plt.scatter(x, y, c=colors)
sm = plt.cm.ScalarMappable(cmap=colormap)
sm.set_clim(vmin=0, vmax=100)
plt.colorbar(sm)
plt.xlabel("Actual")
plt.ylabel("Predicted")
plt.show()
对于我随机生成的数据,我得到了以下图:
现在更换'plasma'
with 'viridis'
并检查其他变体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)