gpt4 book ai didi

python - 使用 matplotlib 的结果不一致

转载 作者:行者123 更新时间:2023-11-28 19:16:28 25 4
gpt4 key购买 nike

我想实现的是有这样的情节

resultulting image

因此,如果绿线的线条颜色值为 19,则它应该与右侧的 19 和 20 之间的颜色相同。我也确切地知道我将拥有值的范围(这里是从 17 到 25)。

下面的方法有时会奏效,但奇怪的是它大约每隔一秒就奏效一次。当我再次执行它时,突然我得到一条完全蓝色的线(rgb 0 0 255)。我的方法有问题吗?

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

cmap = plt.get_cmap('cubehelix')

minval = 17
maxval = 25
bounds = np.arange(minval, maxval+1)

mynorm = matplotlib.colors.Normalize(vmin = minval, vmax = maxval)
sm = matplotlib.cm.ScalarMappable(norm=mynorm, cmap=cmap)

color = sm.to_rgba(20)
ax.plot([0, 100], [0, 100], c=color, lw=2)

ax2 = fig.add_axes([0.90, 0.1, 0.03, 0.8])
cb = matplotlib.colorbar.ColorbarBase(ax2, cmap=cmap, norm=mynorm, spacing='proportional', ticks=bounds, boundaries=bounds, format='%1i')

plt.show()

我正在使用 Python 3.5.0 和 matplotlib 1.4.3。

最佳答案

我发现 c 参数有时会产生非直观的结果。但是,简单地使用 color 参数往往会更加一致。

此代码是否解决了您的问题?

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

cmap = plt.get_cmap('cubehelix')

minval = 17
maxval = 25
bounds = np.arange(minval, maxval+1)

mynorm = matplotlib.colors.Normalize(vmin = minval, vmax = maxval)
sm = matplotlib.cm.ScalarMappable(norm=mynorm, cmap=cmap)

color = sm.to_rgba(20)
ax.plot([0, 100], [0, 100], color=color, lw=2) # Using 'color' instead of 'c'

ax2 = fig.add_axes([0.90, 0.1, 0.03, 0.8])
cb = matplotlib.colorbar.ColorbarBase(
ax2, cmap=cmap, norm=mynorm, spacing='proportional',
ticks=bounds, boundaries=bounds, format='%1i')

plt.show()

这里引用了这个问题,https://github.com/matplotlib/matplotlib/issues/5197它将在 1.5.0 中修复

关于python - 使用 matplotlib 的结果不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32964051/

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