matplotlib中的干图?

时间:2012-10-30 18:14:41

标签: python matplotlib

我想要plot(x, sin(x)),而不是从(xi,yi)(x_i+1,y_i+1)的一行,我想要从(xi,0)(xi,yi)的每个点都有一条垂直线这些点之间的插值是没有意义的(例如量化数据)(并且使用该垂直线看起来好于没有)。

很像下面的干线图(来自matlab文档),但可以选择关闭圆圈和点之间的“ - ”。 不幸的是,我自己在matplotlib文档中找不到合适的绘图功能。

stem plot

2 个答案:

答案 0 :(得分:18)

matplotlib中还有一个stem plot(a.k.a.棒棒糖图)。


您可以在下面找到the docs的示例。

import matplotlib.pyplot as plt
import numpy as np

# returns 10 evenly spaced samples from 0.1 to 2*PI
x = np.linspace(0.1, 2 * np.pi, 10)

markerline, stemlines, baseline = plt.stem(x, np.cos(x), '-.')

# setting property of baseline with color red and linewidth 2
plt.setp(baseline, color='r', linewidth=2)

plt.show()

stem plot


如果要调整基线的y位置,可以使用bottom参数。

(改编)示例:

import matplotlib.pyplot as plt
import numpy as np

# returns 10 evenly spaced samples from 0.1 to 2*PI
x = np.linspace(0.1, 2 * np.pi, 10)

plt.stem(x, np.cos(x), '-.', bottom=-2)

plt.show()

stem plot 2

答案 1 :(得分:0)

我认为你想使用linestyle ='steps - '

plot(x, sin(x), linestyle='steps--')