簡體   English   中英

如何使用matplotlib繪制特定像素大小的圖形?

[英]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)

這樣可以確保一個像素等於一微米。 但是,我不知道如何控制像素大小的散布和線寬。 默認的splt.scatterlinewidthplt.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.

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