散点图中垂直线到点

时间:2016-11-30 17:12:26

标签: python matplotlib

假设我有一组积分y和一组相应的数据plt.scatter(x,y)。我现在在散点图{{1}}中绘制这些图。我得到的数字包含matplotlib生成的一些x轴刻度。有没有办法可以实现自动滴答,但是从x轴到散点中的点添加垂直线并标记它们?

2 个答案:

答案 0 :(得分:9)

嗯,有一个stem方法,更容易使用:

import matplotlib.pyplot as plt
import numpy as np

x, y = np.random.random((2, 20))

fig, ax = plt.subplots()
ax.stem(x, y, markerfmt=' ')
plt.show()

如果你想在线条的顶部放置项目符号,只需删除markerfmt

答案 1 :(得分:5)

喜欢这个吗?

altered scattergram

如果是这样,那么这就是必需品。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import collections as matcoll

x = np.arange(1,13)
y = [15,14,15,18,21,25,27,26,24,20,18,16]

lines = []
for i in range(len(x)):
    pair=[(x[i],0), (x[i], y[i])]
    lines.append(pair)

linecoll = matcoll.LineCollection(lines)
fig, ax = plt.subplots()
ax.add_collection(linecoll)

plt.scatter(x,y)

plt.xticks(x)
plt.ylim(0,30)

plt.show()

附录:

对于彩色圆点,请将plt.scatter(x,y)替换为:

colours = ['Crimson', 'Blue', 'Fuchsia', 'Gold', 'Green', 'Tomato', 'Indigo', 'Turquoise', 'Brown', 'Wheat', 'Yellow',]
plt.scatter(x,y,c=colours)
  • 有关指定颜色的可选方法,请参阅specifying colours
  • 有关X11颜色名称及其对应的十六进制代码的列表,请参阅X11 colours
  • 请注意,matplotlib似乎不喜欢两个字的颜色名称,例如“Hot Pink”。