Matplotlib:如何为等高线图调整颜色栏中的线宽?

绍尔施

这是生成图解说明我的问题的最小示例:

import matplotlib.pylab as plt
import matplotlib.mpl as mpl
import numpy as np
import random

data = [[random.random() for i in range(10)] for j in range(10)]

[XT, YT] = np.meshgrid(np.arange(1,10+1,1), np.arange(1,10+1,1))

cmap = mpl.cm.gray

fig, ax = plt.subplots()

CS = ax.contour(XT, YT, data,levels=np.arange(0,1+0.1,0.1),\
                cmap=cmap,linewidths=0.75)
CB = plt.colorbar(CS, ticks=np.arange(0,1+0.1,0.1))  

plt.show()

结果图如下所示:

gray_contours

我想使图linewidths中的轮廓线保持不变0.75但要增加其轮廓线colorbar(以提高可读性)。

如何linewidthscolorbar不更改图中的情况下更改?

我最初尝试过CB.collections,但是colorbar没有collections同样,colorbar使用参数调用linewidths=4.0也不起作用(这是未知参数)。

注释
在输入此问题时,我有这个主意(橡皮鸭调试):

CS = ax.contour(XT, YT, data,levels=np.arange(0,1+0.1,0.1),\
            cmap=cmap,linewidths=4.0)
CB = plt.colorbar(CS, ticks=np.arange(0,1+0.1,0.1))
plt.setp(CS.collections , linewidth=0.75)

基本上,将的初始值设置为linewidths所需的水平colorbar,然后在原始轮廓线上colorbar使用生成和,collections以减小其线宽。
这有效。

但是:有没有一种方法可以直接控制linewidths中的colorbar

CT Zhu

您只需要了解如何访问这些行,就可以尝试:

>>> CB.ax.get_children()
[<matplotlib.axis.XAxis object at 0x026A74B0>, <matplotlib.axis.YAxis object at 0x026AF270>, <matplotlib.lines.Line2D object at 0x026AF190>, <matplotlib.patches.Polygon object at 0x027387F0>, <matplotlib.collections.LineCollection object at 0x02748BD0>, <matplotlib.text.Text object at 0x026C0D10>, <matplotlib.patches.Rectangle object at 0x026C0D50>, <matplotlib.spines.Spine object at 0x026A7410>, <matplotlib.spines.Spine object at 0x026A7290>, <matplotlib.spines.Spine object at 0x026A7350>, <matplotlib.spines.Spine object at 0x026A71B0>]

好吧,我猜,第5个项目是分隔线列表。我们正在寻找一些.line对象,其中有两个。第一个(第三项)实际上是整个颜色条的边缘(如果我没记错的话)。所以我将继续下一个.line对象。

现在让我们尝试以几种方式对其进行修改:

>>> len(lines1[4].get_linewidths())
11 #how many item are there? 11 lines
>>> lines1[4].set_color(['r']*11) #set them all to red, in this example we actually want to have the color stay the same, this is just for a demonstration. 
>>> lines1[4].set_linewidths([2]*11) #set them all to have linewidth of 2.

结果在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有lognorm的matplotlib等高线图-颜色栏级别

来自分类Dev

Matplotlib等高线图上颜色栏的Python最小和最大范围

来自分类Dev

Python 中 matplotlib 等高线图的 ValueError

来自分类Dev

填充matplotlib等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

等高线图例-Matplotlib

来自分类Dev

散景中的等高线图

来自分类Dev

坏等高线图

来自分类Dev

条件等高线图

来自分类Dev

从mgcv中的vis.gam更改等高线图中的颜色

来自分类Dev

给定范围内的matplotlib等高线图

来自分类Dev

Python Matplotlib等高线图中的非线性缩放

来自分类Dev

使用Matplotlib滑块更新等高线图级别

来自分类Dev

在给定范围内的matplotlib等高线图

来自分类Dev

从matplotlib等高线图中提取特定路径

来自分类Dev

在 matplotlib 等高线图中设置轴比例

来自分类Dev

如何在matplotlib imshow等高线图的顶部显示数据点?

来自分类Dev

在matplotlib中绘制最小二乘估计函数的等高线图

来自分类Dev

等高线之间填充颜色不变的等高线图

来自分类Dev

如何使等高线图叠加在底图上

来自分类Dev

R中自定义函数的等高线图

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

等高线图x标签

来自分类Dev

多元高斯的等高线图

来自分类Dev

从数据框创建等高线图

来自分类Dev

八度等高线图

来自分类Dev

等高线图x标记

来自分类Dev

使用函数绘制等高线图