gpt4 book ai didi

python - 在 matplotlib patchcollection 中设置颜色范围

转载 作者:太空狗 更新时间:2023-10-29 20:37:32 25 4
gpt4 key购买 nike

我正在策划 PatchCollection在 matplotlib 中,带有从文件中读入的坐标和色 block 颜色值。

问题是 matplotlib 似乎会自动将颜色范围缩放到数据值的最小/最大值。如何手动设置颜色范围?例如。如果我的数据范围是 10-30,但我想将其缩放到 5-50 的颜色范围(例如,与另一个图进行比较),我该怎么做?

我的绘图命令看起来与 api 示例代码中的非常相似:patch_collection.py

colors = 100 * pylab.rand(len(patches))
p = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4)
p.set_array(pylab.array(colors))
ax.add_collection(p)
pylab.colorbar(p)

pylab.show()

最佳答案

在您的示例中,使用 p.set_clim([5, 50]) 设置颜色缩放的最小值和最大值。 matplotlib 中任何有颜色图的东西都有 get_climset_clim方法。

作为一个完整的例子:

import matplotlib
import matplotlib.pyplot as plt
from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle
import numpy as np

# (modified from one of the matplotlib gallery examples)
resolution = 50 # the number of vertices
N = 100
x = np.random.random(N)
y = np.random.random(N)
radii = 0.1*np.random.random(N)
patches = []
for x1, y1, r in zip(x, y, radii):
circle = Circle((x1, y1), r)
patches.append(circle)

fig = plt.figure()
ax = fig.add_subplot(111)

colors = 100*np.random.random(N)
p = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p)

fig.show()

enter image description here

现在,如果我们在调用 fig 之前的某处添加 p.set_clim([5, 50])(其中 p 是补丁集合)。 show(...),我们得到这个: enter image description here

关于python - 在 matplotlib patchcollection 中设置颜色范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028675/

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