【问题标题】:Matplotlib evenly spaced contour linesMatplotlib 等间距等高线
【发布时间】:2015-10-10 23:53:22
【问题描述】:

我正在学习如何使用等高线函数,我被分配了使用第四个参数绘制 25 条等距线的任务。

编辑: 这是所需的图像:

z = np.load('heights.npy')
plt.contour(np.transpose(z), 25) #Now plotting with 25 evenly spaced contours
plt.title('even contour lines')
plt.savefig('myFig2.png', format='png')

我检查了here,但找不到我需要的东西。任何帮助将不胜感激。

我也看过here,但正如你所见,我的行间距不均匀。

【问题讨论】:

  • 我很确定“均匀间隔”的意思是“相对于水平值”。除非您的函数是线性的,否则这些等值曲线(不知道正确的名称是什么)实际上永远不会在(x,y) 平面上均匀分布。还是我误会了什么?
  • 在我要制作的示例图像中,线条是均匀分布的
  • 您是否也检查过help(plt.contour)?它说contour(X,Y,Z,V) - draw contour lines at the values specified in sequence *V*。您是否尝试过提供等距列表V
  • 输入 [21]: np.shape(z) 输出[21]: (101L, 76L)
  • 添加 (101, 76) 只会给我更多错误

标签: python matplotlib plot


【解决方案1】:

你需要手动指定你的情节的水平,否则matplotlib会为你确定水平,这显然不是你想要的。

z = np.load('heights.npy')
plt.contour(np.transpose(z),np.linspace(z.min(),z.max(),25)) 
plt.title('even contour lines')
plt.savefig('myFig2.png', format='png')

这将设置contour 级别,以便将z 数据的范围划分为24 个等距间隔,即25 行。

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多