gpt4 book ai didi

python - pyplot colorbar 有一个不需要的额外小数。最高值应为 1.00,但显示为 1.05

转载 作者:行者123 更新时间:2023-12-01 01:51:01 25 4
gpt4 key购买 nike

所以我做了一个等高线图,我的颜色条有一个虚假值。数据严格在0和1之间。为什么会出现这个1.05?如何使顶部数字为 1.00?

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(1,10, 100)
z = np.random.uniform(0, 1, 100**2).reshape((100, 100))
plt.contourf(x, x, z, cmap=plt.cm.coolwarm, vmin=0., vmax=1.)
cbar = plt.colorbar()
print(cbar.get_clim()) # (0.0, 1.0)

colorbar problem example

最佳答案

绘制等高线时,contourf 函数会自动选择它认为最合适的级别值来为每个数据点分配颜色。这有点类似于直方图中的数据分箱。颜色条中的每个部分都反射(reflect)这些级别之一。

在本例中,它选择创建 7 个级别,而 matplotlib 正在努力(出于我承认我不明白的原因)以适应颜色栏。

您可以通过指定 contourf 函数应使用的级别数并选择一个为您提供更可接受的颜色条的值来解决此问题(您可能不希望低于自动选择的级别数):

plt.contourf(x, x, z, 10, cmap=plt.cm.coolwarm)
plt.colorbar()

Correctly spaced ticks

或者,如果您确实想离开 contourf 来做出此决定,您可以调整颜色栏上的刻度:

plt.contourf(x, x, z, cmap=plt.cm.coolwarm)
plt.colorbar(ticks=np.linspace(0, 1, 5))

Colorbar with adjusted ticks

关于python - pyplot colorbar 有一个不需要的额外小数。最高值应为 1.00,但显示为 1.05,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com