uca*_*cag 0 python matplotlib python-3.x
现在我正在做一个图形项目,它要求我绘制一个具有特定元素尺寸(以微米为单位)的图像。我正在使用 matplotlib 来完成这项任务。但是,我在尺寸控制方面遇到了一些问题。
我已经计算了所有的绘图数据来描述图像。它基本上是一个散布在网格交叉线上的网格,这个网格中有数百个列和行,每条交叉线的每个轴都有自己的宽度(以微米为单位)。示例图像是这样的:
我尝试了很多方法来控制元素或艺术家的大小。为了使一个像素等于一微米,我为这个数字设置了一个大的 DPI
DPI = 25400
plt.figure(dpi=DPI)
fig = plt.gcf()
size = (
width / DPI,
height / DPI
)
fig.set_size_inches(size)
Run Code Online (Sandbox Code Playgroud)
这可以确保一个像素是一微米。但是,我不知道如何控制像素大小的散点和线宽。默认的sinplt.scatter或linewidthinplt.plot不能帮助控制大小。
我想知道如何使用 matplotlib 以微米为单位控制它,或者我应该更改另一个工具来绘制此图形,甚至是任何其他工具来满足此要求?
Matplotlib 的线宽以磅为单位;分散大小以点 ^2 为单位。为此,请参阅pyplot 散点图标记大小。
1 point == fig.dpi/72. pixels
Run Code Online (Sandbox Code Playgroud)
因此,
1 pixel == 72/fig.dpi points
Run Code Online (Sandbox Code Playgroud)
如果一微米是一个像素,而你想要一些 x 微米大小的东西,
x microns = x pixel = x*72 /fig.dpi points
Run Code Online (Sandbox Code Playgroud)
因此
plt.plot(..., linewidth=x * 72 / fig.dpi)
plt.scatter(..., s=(x * 72 / fig.dpi)**2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |