gpt4 book ai didi

python - Matplotlib 半色轴

转载 作者:太空狗 更新时间:2023-10-30 00:36:00 27 4
gpt4 key购买 nike

我正在使用 matplotlib 绘制一些图,但遇到了一些需要帮助的困难。

问题 1) 为了保持一致的配色方案,我只需要使用一半的色轴。只有正值,所以我希望零值是绿色,中间值是黄色,最高值是红色。与此最匹配的配色方案是 gist_rainbow_r,但我只想要它的上半部分。

问题 2) 我似乎无法弄清楚如何让绘图右侧的颜色条显示出来,或者如何让它让我标记坐标轴。

如果有帮助,我正在使用最新版本的 Anaconda 和 matplotlib 的 latext 版本

cmap = plt.get_cmap('gist_rainbow_r')
edosfig2 = plt.figure(2)
edossub2 = edosfig.add_subplot(1,1,1)
edossub2 = plt.contourf(eVec,kints,smallEDOS,cmap=cmap)
edosfig2.show()

最佳答案

如果您有一组特定的颜色要用于颜色图,则可以基于这些颜色构建它。例如:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

cmap = LinearSegmentedColormap.from_list('name', ['green', 'yellow', 'red'])

# Generate some data similar to yours
y, x = np.mgrid[-200:1900, -300:2000]
z = np.cos(np.hypot(x, y) / 100) + 1

fig, ax = plt.subplots()

cax = ax.contourf(x, y, z, cmap=cmap)
cbar = fig.colorbar(cax)
cbar.set_label('Z-Values')

plt.show()

enter image description here


但是,如果您只想要一些特别复杂的颜色图的上半部分,则可以通过在您感兴趣的范围内评估颜色图来复制它的一部分。例如,如果您想要“上”的一半,你会从 0.5 到 1 评估它:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

# Evaluate an existing colormap from 0.5 (midpoint) to 1 (upper end)
cmap = plt.get_cmap('gist_earth')
colors = cmap(np.linspace(0.5, 1, cmap.N // 2))

# Create a new colormap from those colors
cmap2 = LinearSegmentedColormap.from_list('Upper Half', colors)

y, x = np.mgrid[-200:1900, -300:2000]
z = np.cos(np.hypot(x, y) / 100) + 1

fig, axes = plt.subplots(ncols=2)
for ax, cmap in zip(axes.flat, [cmap, cmap2]):
cax = ax.imshow(z, cmap=cmap, origin='lower',
extent=[x.min(), x.max(), y.min(), y.max()])
cbar = fig.colorbar(cax, ax=ax, orientation='horizontal')
cbar.set_label(cmap.name)

plt.show()

enter image description here

关于python - Matplotlib 半色轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746231/

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