【问题标题】:2D color plot when one of the dimensions has a single value当其中一个维度具有单个值时的 2D 彩色图
【发布时间】:2015-08-19 03:13:46
【问题描述】:

我正在尝试使用以前处理矩形数据的脚本制作二维彩色图。但是,我现在需要使用它来处理 x 轴上只有一个具有数据的点。

我得到的是:

self.fig = plt.figure('Title', (10.,10.))
ax=plt.subplot(111)
im=ax.imshow(color_array,interpolation='none',extent=[100,100,50,150],aspect=0.15)
# setting labels, climate, color bar, saving image, etc..

我确定导致问题的原因是 extent = [100,100,我只是不完全确定如何以不同的方式编写代码以使绘图显示为除了内部没有任何东西的狭窄垂直矩形之外的其他内容。

颜色数组通常是一个二维数字数组,但在这种有限的情况下,它本质上是一个一维数组。发生的情况是,有三个二维数组,所有维度都相同,其中两个组成 x 和 y 轴,第三个(颜色数组)确定字段的颜色。现在它们看起来(简化)是这样的:

y轴:[[90,100,110,120]]

x轴:[[100,100,100,100]]

颜色:[[10,11,13,14]]

【问题讨论】:

  • color_array 是什么形状的?如果需要,您可以随时添加额外的尺寸(例如np.atleast_2dnp.atleast_3ddata[None,None,:] 等)。此外,如果您可以包含您遇到的错误的回溯,这将非常有帮助。以您的方式设置范围会发出警告,但不会出错。
  • @JoeKington 抱歉,我的问题有点不清楚。我没有收到错误,绘图仍在创建中,它们只是被创建为水平矩形,中间没有任何颜色。基本上,问题在于,由于水平轴只有一个参数,因此它被压缩了,因此从某种意义上说,绘图的颜色部分“非常小”。我将对有关您要求的其他信息的问题进行适当的编辑,以及绘图现在的样子。

标签: python-2.7 matplotlib


【解决方案1】:

答案很简单。所需要的只是对程度的简单调整。基本上,只要确保同一轴上的两个值之间的距离大于 0 即可。

im=ax.imshow(color_array,interpolation='none',extent[100-1,100+1,50,150],aspect=0.15)

我使用值 1 来分隔上述内容,但实际上,任何数字都可以使用(如果您希望保持一致,您也可以将其缩放到绘图的变化尺寸)。

我使用了if 语句来确保这只发生在轴数组的第一个索引等于最后一个索引的情况下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    相关资源
    最近更新 更多