gpt4 book ai didi

python - Matplotlib colorbar 不绘制四肢边缘

转载 作者:行者123 更新时间:2023-12-05 04:31:02 24 4
gpt4 key购买 nike

创建 matplotlib 颜色条时,可以将 drawedges 设置为 True,用黑线分隔颜色条的颜色。但是,当使用 extend='both' 扩展颜色栏时,四肢的黑线不会显示。那是一个错误吗?是否有可能以其他方式绘制这些边缘?

代码如下:

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import from_levels_and_colors

my_cmap = mpl.cm.viridis
bounds = np.arange(10)
nb_colors = len(bounds) + 1
colors = my_cmap(np.linspace(100, 255, nb_colors).astype(int))
my_cmap, my_norm = from_levels_and_colors(bounds, colors, extend='both')

plt.figure(figsize=(5, 1))
ax = plt.subplot(111)
cbar = mpl.colorbar.ColorbarBase(ax, cmap=my_cmap, norm=my_norm, orientation='horizontal', drawedges=True)
plt.subplots_adjust(left=0.05, bottom=0.4, right=0.95, top=0.9)
plt.show()

及其给出的数字:

enter image description here

最佳答案

我根据您的问题进行了调查,并找到了一种方法来更改颜色条的边框和垂直线的颜色。我用它把它们变成红色。我得到的结果是扩展的轮廓是红色的,所以我的猜测是我只是将正常颜色条矩形的短边向左和向右拉。我找到了 this response有帮助。

cbar.outline.set_edgecolor('red')
cbar.dividers.set_color('red')

enter image description here

所以我认为唯一的方法是添加垂直线。

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import from_levels_and_colors

my_cmap = mpl.cm.viridis
bounds = np.arange(10)
nb_colors = len(bounds) + 1
colors = my_cmap(np.linspace(100, 255, nb_colors).astype(int))
my_cmap, my_norm = from_levels_and_colors(bounds, colors, extend='both')

plt.figure(figsize=(6, 2))
ax = plt.subplot(111)
cbar = mpl.colorbar.ColorbarBase(ax, cmap=my_cmap, norm=my_norm, orientation='horizontal', drawedges=True)
# update
cbar.outline.set_edgecolor('red')
cbar.dividers.set_color('red')
plt.axvline(max(bounds), color='red', alpha=0.3, linewidth=3.5)
plt.axvline(min(bounds), color='red', alpha=0.3, linewidth=3.5)

plt.subplots_adjust(left=0.05, bottom=0.4, right=0.95, top=0.9)
plt.show()

enter image description here

关于python - Matplotlib colorbar 不绘制四肢边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71931411/

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