更改现有matplotlib图的颜色图

安德烈(Andrey Sevostyanov)

我想知道是否有功能可以帮助我更改已经存在的图形的颜色图(实际上是FigureCanvasTkAgg,它基本上继承了大多数Figure方法和功能),我几乎没有GUI,上面有Frame和FigureCanvasTkAgg对象。我想更改(例如使用按钮)此图的颜色映射。我创建了这样的按钮(RadioButton self.cmap)和回调:

def change_cmap(self):

    plt.set_cmap(self.cmap.get()) 
    self.canvas.draw () ## method (like show()) which draw figure

这实际上可行,但是当我将子图处理为数字时,此回调仅更改最后一个子图的cmap。有什么想法如何处理吗?为什么draw()方法不更新整个图形,而仅更新最后一个子图?

在此处输入图片说明

创建子图的过程(需要转换为面向对象的方法)

axes = [] # list of axes objects

fig,ax = plt.subplots ( figsize = (15,10) )

ax = fig.add_subplot ( 311 )
fig.axes[0].plot( offset[:max] , 'k' )
axes.append(ax)

ax = fig.add_subplot ( 312 )
fig.axes[1].plot ( cdp[:max] , 'b' )
axes.append(ax)

ax = plt.subplot ( 313 )
fig.axes[2].imshow( seg[: , :max] , aspect = 'auto' , cmap = cmap)
axes.append(ax)


for i in axes:
  i.set_cmap('seismic) ### This raise 'AxesSubplot' object has no attribute 'set_cmap' error :(
朝日朝日

您正在使用plt.xxxx()作用在当前轴上的pyplot函数有关更多详细信息,请参见https://matplotlib.org/3.2.1/tutorials/introductory/lifecycle.html)。

当有多个轴时,强烈建议您使用面向对象的方法。本质上,您将不得不遍历您的支持,并im.set_cmap(...)在其中调用im是对所返回图像的引用imshow()

self.ims = []
#create subplots:
fig, axs = plt.subplots(3,1,figsize = (15,10))
axs[0].plot( offset[:max] , 'k' )
axs[1].plot ( cdp[:max] , 'b' )
im = axs[2].imshow( seg[: , :max] , aspect = 'auto' , cmap = cmap)
self.ims.append(im)

def change_cmap(self):
    for im in self.ims:
        im.set_cmap(self.cmap.get()) 
    self.canvas.draw () ## method (like show()) which draw figure

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据颜色图更改现有的绘图线

来自分类Dev

如何更改现有轴的matplotlib子图投影?

来自分类Dev

更改Matplotlib小提琴图的颜色

来自分类Dev

更改Matplotlib图的默认背景颜色

来自分类Dev

Matplotlib:事实后更改颜色图

来自分类Dev

将alpha添加到现有的matplotlib颜色图

来自分类Dev

使用Matplotlib颜色图

来自分类Dev

旋转Matplotlib颜色图

来自分类Dev

使用Matplotlib颜色图

来自分类Dev

mollview:使用matplotlib颜色图并更改背景颜色

来自分类Dev

更改圆环图的颜色

来自分类Dev

SigmaJs是否可以更改现有图sigma js的节点/链接的属性?就像我想更改链接/节点的颜色。

来自分类Dev

调用matplotlib图后如何更改线条颜色?

来自分类Dev

根据部分标签(pandas / matplotlib)更改饼图的颜色

来自分类Dev

如何在matplotlib中更改颜色图的强度?

来自分类Dev

Matplotlib将子图绘制到现有图形

来自分类Dev

PyQt4,matplotlib,修改现有图的轴标签

来自分类Dev

将现有图添加到 matplotlib pylab 中

来自分类Dev

更改谱图图背景颜色

来自分类Dev

Matplotlib更深的HSV颜色图

来自分类Dev

在 matplotlib 中合并颜色图

来自分类Dev

Matplotlib 颜色图值转换

来自分类Dev

具有长度为4的数组的Matplotlib颜色图错误

来自分类Dev

Matplotlib中具有透明度的离散颜色图

来自分类Dev

如何查看matplotlib中可用的所有颜色图?

来自分类Dev

在matplotlib中创建没有颜色条的热图

来自分类Dev

在Matplotlib图组中标记并带有正确颜色的图例

来自分类Dev

更改颜色隐式图

来自分类Dev

更改高图地图颜色