考慮到這個例子:
importmatplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
pxwidth=930; pxheight=500; dpi=120
fig = plt.figure(figsize=(pxwidth/dpi,pxheight/dpi), dpi=dpi)
subplotpars1 = dict(left = 0.05, right=0。 99, top=0.95, wspace=0.1)
gs = mpl.gridspec. GridSpec(2,2, width_ratios=(7, 3), height_ratios=(2, 1), **Subplotpars1)
ax1 = fig.add_subplot(gs[0,0]) # Y圖1,0], sharex=ax1) # 溫度曲線圖 1]) # CIE plot。
ax3. plot([0, 10, 20, 30], [0, 20, 40, 60], color='red')
ax3.set_aspect('equal')
plt.show()
那么,假設我運行這個例子,從起始布局開始,我嘗試做一個矩形的縮放選擇:
正如你所看到的,子圖的 "大小 "已經改變,因此它與縮放矩形相匹配!
其原因是ax3.set_aspect('equal')--如果你評論/洗掉該行,那么縮放就會像往常一樣(也就是說,子圖的大小不會改變,只顯示在里面的內容)。
然而,我并不真正理解為什么在進行矩形區域縮放時,"等寬 "會導致情節大小的變化--誰能解釋一下?
此外,是否有辦法控制子圖的大小?比方說,與其讓 ax3 占據 "所有可用空間"(如第一張圖片所示),我是否可以強制它變成,比如說,一個正方形的長寬比(寬度被計算為 "所有可用空間",然后高度也被設定為這個寬度)?
uj5u.com熱心網友回復:
- 使用
set_aspect('equal')在y軸上的5個單位將具有與y軸上的5個單位相同的大小。如果你的x軸在y軸上從5-25,27-37,那么繪圖的長寬比將是2:1。 - 如果你想要一個正方形的繪圖,你可能需要
set_box_aspect。 我還提出了一個比gridspecs更現代的方法來獲得你想要的東西,你可以接受或不接受。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
pxwidth=930; pxheight=500; dpi=120
fig = plt.figure(figsize=(pxwidth/dpi,pxheight/dpi), dpi=dpi, constrained_layout=True)
axs = fig.subplot_mosaic([['left0', 'right'], ['left1', 'right']]。
gridspec_kw={'height_ratios': [2, 1], 'width_ratios': [7, 3]})
axs['right']。 plot([0, 10, 20, 30], [0, 20, 40, 60], color='red')
axs['right'].set_box_aspect(1)
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/312392.html
標籤:
上一篇:繪制三維圖形的問題

