如何解决pyplot 颜色图和条形图与值不对应
有些原因远远超出了我的理解,我设置了两个不同的热图,虽然一个工作得很好,但第二个将几种不同的颜色映射到相同的 z 数(例如 0),并且颜色条完全颠倒了。
所以,我的第一个热图是这样的:
它的生成代码是:
data = mcs(n,k) # the monte carlo simulation that returns my 2d numpy array
fig,ax = plt.subplots()
im = ax.imshow(data,cmap="inferno")
ax.set_xticks(np.arange(len(data)))
ax.set_yticks(np.arange(len(data)))
ax.set_xticklabels(data.index)
ax.set_yticklabels(data.columns)
plt.setp(ax.get_xticklabels(),rotation=45,ha="right",rotation_mode="anchor")
plt.gca().invert_yaxis()
for i in range(len(data.index)):
for j in range(len(data.columns)):
text = ax.text(j,i,f"{int(data[i+1][j+1]):2}%",ha="center",va="center",color="w")
ax.set_title("Percentage of success on a contested check")
ax.set_xlabel("Attacker poll size")
ax.set_ylabel("Defender pool size")
fig.tight_layout()
plt.show()
但后来我尝试了第二个热图,由一个非常相似的函数创建,并带有一个颜色条。但结果却大不相同...
和代码:
data = mcs_fixed(n,k)
fig,cmap="viridis")
cb = plt.colorbar(im)
ax.set_xticks(np.arange(len(data)))
ax.set_yticks(np.arange(len(data)))
ax.set_xticklabels(data.index)
ax.set_yticklabels(data.columns)
plt.setp(ax.get_xticklabels(),color="w")
ax.set_title("Percentage of success on a skill check")
ax.set_xlabel("Challenger poll size")
ax.set_ylabel("Established difficulty")
fig.tight_layout()
plt.show()
为什么有些零映射到不同的颜色,而映射根本没有意义?为什么 Colorbar 颜色反转?我尝试反转颜色条 y 轴,但它反转了颜色和数字,因此没有解决问题。
有什么建议吗?
编辑:我完全忘了说,导入的数据是熊猫数据框。我将数据更改为列表,并且颜色栏运行良好。不过,轴倒置了...
编辑 2:以下是重现结果的一小部分数据示例。
test_case = [[40.0,2.0,0.0,0.0],[64.0,19.0,3.0,[78.0,39.0,15.0,4.0],[88.0,55.0,25.0,4.0]]
data = pd.DataFrame(test_case)
data.index += 1
data.columns += 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。