我如何用冲动来绘制像gnuplot' s这样的风格。用matplotlib?

时间:2017-06-13 23:08:29

标签: python pandas matplotlib plot

我想用python / pandas / matplotlib创建一个类似下图的图。上夹是没问题的,但是我还没有能够得到像下夹一样的情节。我可以在gnuplot中做到这一点,其中等效的情节风格是带有冲动的'。 matplotlib可以吗?如果matplotlib不可能有另一个python图形包可以工作吗?

The gnuplot style for the lower clip is 'with impulses'

2 个答案:

答案 0 :(得分:5)

创建此类情节的最简单方法是使用pyplot.stem。  可以找到一个示例here

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 6*np.pi, 50)
plt.stem(x, np.cos(x)+1, linefmt='g-', markerfmt=' ')
plt.stem(x, -np.sin(x)-1, linefmt='r-', markerfmt=' ', basefmt="gray")

plt.show()

enter image description here

另一种选择是使用pyplot.vlines

答案 1 :(得分:1)

这是一个使用vlines作为@ImportanceOfBeingErnes建议的工作示例,这提出了另一个问题。一种解决方案比另一种更好吗?在某种程度上更高效或更好?

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 6*np.pi, 50)
plt.vlines(x, 0, np.cos(x)+1, color='g')
plt.vlines(x, 0, -np.sin(x)-1, color='r')
plt.show()

enter image description here