簡體   English   中英

在matplotlib等高線圖中設置軸刻度

[英]setting axis scale in matplotlib contour plot

我正在根據FEM程序的輸出在matplotlib中生成輪廓圖,該程序給出了節點坐標及其相應的狀態參數,如下所示:

x = [x1,x2,x3,...,xn] y = [y1,y2,y3,...,yn] z = [z1,z2,z3,...,zn]

其中z是列表。

輪廓圖生成如下

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as ml

#paste data extraction routine here to generate list for x, y and z

xi = np.linspace(min(x),max(x),len(x))
yi = np.linspace(min(y), max(y), len(y))
zi = ml.griddata(x,y,z,xi,yi, interp = 'linear')

plt.figure()
contourplot = plt.contourf(xi,yi,zi, cmap=plt.cm.bone,
                  origin='lower')
cbar = plt.colorbar(contourplot)
plt.axis('equal')
plt.show()

我得到的輪廓圖取決於倒數第二行plt.axis('equal')

如果包括這一行,我會得到以下信息:

在此處輸入圖片說明

如果我不包括這一行,我得到這個:

在此處輸入圖片說明

該圖描繪了土壤層中的變形,我想確保它按比例繪制,並且我可以控制圖像的最終尺寸。

第一個數字是按比例繪制的(即,軸在相同的比例上),但是它不能像看到的那樣占據整個圖形。

第二個數字未按比例繪制,但它占據了整個數字。

我想確保獲得正確的縮放圖像。 我可以用這種方式控制軸嗎? 謝謝

您可能要使用

plt.gca().set_aspect("equal")

而不是plt.axis('equal') 結果看起來像

在此處輸入圖片說明

然后,您也可以使用圖形大小和邊距,例如

plt.figure(figsize=(8,2))
# ...
plt.tight_layout()

會導致

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM