Roh*_*hit 115 matplotlib
我不太明白为什么我无法在指定的限制下创建水平和垂直线.我想通过这个框绑定数据.但是,双方似乎并不遵守我的指示.为什么是这样?
# CREATING A BOUNDING BOX
# BOTTOM HORIZONTAL
plt.axhline(y=.4, xmin=0.25, xmax=0.402, linewidth=2, color = 'k')
# RIGHT VERTICAL
plt.axvline(x=0.402, ymin=0.4, ymax = 0.615, linewidth=2, color='k')
# LEFT VERTICAL
plt.axvline(x=0.1, ymin=0.58, ymax = 0.79, linewidth=2, color='k')
plt.show()
Run Code Online (Sandbox Code Playgroud)
Ben*_*own 156
您正在调用的pyplot函数,axhline()
并axvline()
绘制跨越轴范围的一部分的线,而不管坐标如何.参数xmin
或ymin
使用值0.0作为轴的最小值,使用1.0作为轴的最大值.
相反,用于plt.plot((x1, x2), (y1, y2), 'k-')
从点(x1,y1)到颜色k的点(x2,y2)绘制一条线.见pyplot.plot
.
tac*_*ell 16
如果要添加边界框,请使用矩形:
ax = plt.gca()
r = matplotlib.patches.Rectangle((.5, .5), .25, .1, fill=False)
ax.add_artist(r)
Run Code Online (Sandbox Code Playgroud)
jdh*_*hao 13
这可能是Matplotlib的新用户绘制垂直和水平线的常见问题.为了理解这个问题,您应该知道Matplotlib中存在不同的坐标系.
方法axhline和axvline用于在轴坐标处绘制线.在此坐标系中,左下角的坐标为(0,0),而右上角的坐标为(1,1),与绘图的数据范围无关.参数xmin
和xmax
都在[0,1]范围内.
另一方面,方法hlines和vlines用于在数据坐标处绘制线条.的范围xmin
和xmax
是在x轴的数据限制的范围内.
我们举一个具体的例子,
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.axhline(y=0.5, xmin=0.0, xmax=1.0, color='r')
ax.hlines(y=0.6, xmin=0.0, xmax=1.0, color='b')
plt.show()
Run Code Online (Sandbox Code Playgroud)
xmin
and和的值与和方法xmax
相同.但生产线的长度是不同的.axhline
hlines
归档时间: |
|
查看次数: |
253897 次 |
最近记录: |