我想知道是否有一种自然的方式来绘制一个图形,该图形包含一组不同长度的行,如下所示:
5 | x--------x
4 | x-----x x--x
3 |
2 | x----x
1 | x-----x
0 |_______________________________
' ' ' ' '
10 20 30 40 50
是每行执行图表的唯一选择吗?
答案 0 :(得分:1)
plot命令可以绘制一组线,你的例子可以用长线绘制
plot([15,25],[1,1],'k--',[25,35],[2,2],'k--',[15,25,nan,28,35], [4,4,4,4,4],'k--', [12,27],[5,5],'k--')
或者,它绘制两个矩阵的列,使用
X = [[15,25,15,28,12],[25,35,25,35,27]]
Y = [[1,2,4,4,5],[1,2,4,4,5]]
plot(X, Y, 'k--*')
在两个轴命令中可能需要查看所有行
axis((5,50,0,6))
答案 1 :(得分:1)
定义一个以给定行的两个终端作为参数的函数更方便。
import matplotlib.pyplot as plt
def line(x1, y1, x2, y2):
plt.plot([x1, x2], [y1, y2], 'k--x')
plt.figure()
line(14, 1, 24, 1)
line(24, 2, 32, 2)
line(14, 4, 24, 4)
line(27, 4, 32, 4)
line(12, 5, 25, 5)
plt.axis([5, 50, 0, 6])
plt.savefig('lines.png')
另一种方法是使用axhline()绘制水平线。