[英]Draw lines into skeleton joints (coordinates) with Python and Matplotlib
[英]Matplotlib: draw lines with width given in data coordinates
我试图找出如何以数据单位绘制宽度的线条。 例如,在下面的代码片段中,我希望宽度为80的线的水平部分始终从y = -40延伸到y = + 40标记,即使坐标系的限制也保持这种状态更改。 有没有办法用matplotlib中的Line2D对象来实现这个目的? 任何其他方式获得类似的效果?
from pylab import figure, gca, Line2D
figure()
ax = gca()
ax.set_xlim(-50, 50)
ax.set_ylim(-75, 75)
ax.add_line(Line2D([-50, 0, 50], [-50, 0, 0], linewidth=80))
ax.grid()
你可以使用fill_between :
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.set_xlim(-50, 50)
ax.set_ylim(-75, 75)
x = [-50, 0, 50]
y = np.array([-50, 0, 0])
ax.fill_between(x,y-30,y+30)
ax.grid()
plt.show()
产量
但不像生成的线
ax.add_line(Line2D([-50, 0, 50], [-50, 0, 0], linewidth=80))
线的垂直厚度在数据坐标中始终是恒定的。
另请参阅文档链接 。
为了以数据单位绘制线宽,您可能需要查看此答案 。
它使用类data_linewidth_plot
,它非常类似于plt.plot()
命令的签名。
l = data_linewidth_plot( x, y, ax=ax, label='some line', linewidth = 1, alpha = 0.4)
linewidth参数以(y-)数据单位解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.