qbo*_*ang 33 plot visualization graph matplotlib
我使用matplotlib创建了一个图,但我已经意识到绘图轴和绘制的线被缩小了.

阅读这个早期的讨论主题,它解释了如何设置数字大小.
fig, ax = plt.subplots()
fig.set_size_inches(3, 1.5)
plt.savefig(file.jpeg, edgecolor='black', dpi=400, facecolor='black', transparent=True)
使用上面的代码(为简洁起见,删除了其他配置),我确实得到了一个具有1200 X 600所需尺寸的结果图像文件(我们应该说分辨率吗?)和所需的文件大小.
投影图像以不寻常的方式缩小,例如注释被放大.我可以在轴上设置标签的大小,但由于底部和右侧的脊仍然很大,因此图形仍然看起来与标尺不成比例,因此绘制的线也是如此.
所以问题是,我们如何解决这个问题,哪些配置出错?
Imp*_*est 65
Figure size(figsize)确定图形的大小(以英寸为单位).这给出了轴(和其他元素)在图中的空间量.(6.4, 4.8)matplotlib 2中的默认图形大小为英寸.较大的图形大小将允许显示更长的文本,更多的轴或更多的标记标记.
每英寸点数(dpi)确定该图包含的像素数.在matplotlib默认的DPI为100的数字figsize=(w,h)将有
px, py = w*dpi, h*dpi # pixels
# e.g.
# 6.4 inches * 100 dpi = 640 pixels
Run Code Online (Sandbox Code Playgroud)
因此,为了获得具有例如像素尺寸的图形,(1200,600)可以选择图形尺寸和dpi的几种组合,例如
figsize=(15,7.5), dpi= 80
figsize=(12,6) , dpi=100
figsize=( 8,4) , dpi=150
figsize=( 6,3) , dpi=200
etc.
Run Code Online (Sandbox Code Playgroud)
现在,有什么区别?这取决于图中元素的大小.线条,标记,文本等大多数元素都有以磅为单位的大小.
Matplotlib数据使用每英寸点数(ppi)为72.厚度为1磅的线将为1./72.英寸宽.使用fontsize 12点的文本将是12./72.寸高.
当然,如果以英寸为单位更改图形大小,则点数不会更改,因此以英寸为单位的较大数字仍具有相同的元素大小.因此,改变图形尺寸就像拿一张不同尺寸的纸张一样.这样做当然不会改变用同一笔绘制的线条的宽度.
另一方面,更改dpi会缩放这些元素.在72 dpi时,1点大小的线是一个像素强.在144 dpi时,这条线强2像素.因此,更大的dpi就像放大镜一样.所有元素都通过镜头的放大倍数进行缩放.
恒定数字大小和变化dpi的比较如左下图所示.在右侧,您可以看到恒定的dpi和不同的图形大小.每行中的数字具有相同的像素大小.
代码重现:
import matplotlib.pyplot as plt
%matplotlib inline
def plot(fs,dpi):
fig, ax=plt.subplots(figsize=fs, dpi=dpi)
ax.set_title("Figsize: {}, dpi: {}".format(fs,dpi))
ax.plot([2,4,1,5], label="Label")
ax.legend()
figsize=(2,2)
for i in range(1,4):
plot(figsize, i*72)
dpi=72
for i in [2,4,6]:
plot((i,i), dpi)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24015 次 |
| 最近记录: |