我想要plot(x, sin(x))
,而不是从(xi,yi)
到(x_i+1,y_i+1)
的一行,我想要从(xi,0)
到(xi,yi)
的每个点都有一条垂直线这些点之间的插值是没有意义的(例如量化数据)(并且使用该垂直线看起来好于没有)。
很像下面的干线图(来自matlab文档),但可以选择关闭圆圈和点之间的“ - ”。 不幸的是,我自己在matplotlib文档中找不到合适的绘图功能。
答案 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()
如果要调整基线的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()
答案 1 :(得分:0)
我认为你想使用linestyle ='steps - '
plot(x, sin(x), linestyle='steps--')