![](/img/trans.png)
[英]How to save a matplotlib.pypot figure as an image with required pixel size?
[英]How to draw a figure in specific pixel size with matplotlib?
現在,我正在進行一個圖形項目,該項目需要我繪制具有特定尺寸(以微米為單位)的圖像。 我正在使用matplotlib完成此任務。 但是,我在尺寸控制方面遇到了一些問題。
我已經計算了所有繪圖數據以描述圖像。 它基本上是一個在網格的交叉線上分散的網格,該網格中有成百上千的行和列,每個交叉線的每個軸都有自己的寬度(以微米為單位)作為尺寸單位。 示例圖片如下所示:
我嘗試了許多方法來控制元素或藝術家的大小。 為了使一個像素等於一微米,我將數字設置為較大的DPI
DPI = 25400
plt.figure(dpi=DPI)
fig = plt.gcf()
size = (
width / DPI,
height / DPI
)
fig.set_size_inches(size)
這樣可以確保一個像素等於一微米。 但是,我不知道如何控制像素大小的散布和線寬。 默認的s
在plt.scatter
或linewidth
在plt.plot
不禁的大小來控制。
我想知道如何使用matplotlib在千分尺上進行控制,還是應該僅更改另一個工具來繪制該圖,甚至是其他工具來滿足此要求?
Matplotlib的線寬以磅為單位; 散點大小以點為單位^ 2。 為此,請參見pyplot散點圖標記大小 。
1 point == fig.dpi/72. pixels
因此,
1 pixel == 72/fig.dpi points
如果1微米等於1像素,而您想要的尺寸是x微米,
x microns = x pixel = x*72 /fig.dpi points
於是
plt.plot(..., linewidth=x * 72 / fig.dpi)
plt.scatter(..., s=(x * 72 / fig.dpi)**2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.