为什么matplotlib中的面片是由绝对单位而不是相对单位指定的?可以切换吗?

2024-09-27 23:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚在mpl中的一个绘图中添加了一个箭头,我不得不摸索了很久,直到它正常工作。我心想:“你知道是什么让这件事变得容易多了吗?如果我能以0到1的相对大小指定所有属性。”

如果您想查看一些代码,下面是我最终如何解决它的:

import matplotlib.pyplot as plt

fig, DSC = plt.subplots(figsize=(7,4))

DSC.plot([0,1,2],[-2,20,59])

x0,xn   = DSC.get_xlim()
y0,yn   = DSC.get_ylim()
pdx,pdy = (xn-x0),   (yn-y0)


DSC.arrow(x  = x0 + pdx*0.07,
          y  = y0 + pdy*0.03,
          dx = 0,
          dy = pdy*0.1,
          facecolor='firebrick',
          edgecolor='k',
          head_width=pdx*0.04,
          head_length=pdy*0.04,
          width=pdx*0.02)

plt.show()

所以我只是自己创建了相对单位,但我想知道:将其作为与patches对象交互的默认方式是否更明智?怎么回事?是否有一种以相对单位使用补丁的原生方法?如果我们已经使用了绝对单位,也许是为了防止其他尺寸的拉伸,为什么不使用图形的英寸测量值呢


Tags: 绘图get单位plt箭头widthheadmpl

热门问题