Python:绘制从Y的一个点到X轴的多个点的问题

时间:2019-04-12 23:56:18

标签: python python-3.x matplotlib plot

我在Y轴上有一个点,在X轴上有许多点,我想从这一个Y点到每个X(三角形)做直线。

plt.plot([P], [TR], 'k')
plt.xlabel('CENTERLINE')
plt.ylabel('RADIUS')
plt.show()

其中TR是我先前声明的单点,而P是浮点数(首先我创建P = np.zeros((n+1)),然后使用for循环放置值)。

plt.show()返回空图表(无任何图)

Here is the example how it should look like

2 个答案:

答案 0 :(得分:2)

一次处理多行时,最好使用LineCollection对象:

import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

import numpy as np

pos_fixed = np.array([0, 35])
lines = np.array([[[pos, 0], pos_fixed] for pos in np.arange(0, 50, 2)])
line_coll = LineCollection(lines)

fig, ax = plt.subplots()
ax.add_collection(line_coll)

plt.xlim([0, lines[:,:,0].max()])
plt.ylim([0, lines[:,:,1].max()])

这样,您可以更轻松地处理绘图(如果您有很多行,它也更快)。

结果:

enter image description here

答案 1 :(得分:1)

这些线不是连续的图,因此您需要分别绘制它们。您可以将其设置为上下一行(以及上下以及上下……)的单行,但是我认为将其作为单独的行更有意义。考虑:

import matplotlib.pyplot as plt
originpoint = (0, 5)
yfloor = 0
xvalues = [0, 1, 2, 3, 4]
for x in xvalues:
    plt.plot((originpoint[0], x), (originpoint[1], yfloor))
plt.show()

the plot