茎线总是蓝色的:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1, 2*np.pi, 10)
plt.stem(x, np.sin(x), markerfmt='o', label='sin')
plt.stem(x+0.05, np.cos(x), markerfmt='o', label='cos')
plt.legend()
plt.show()
我希望茎线与标记的颜色相匹配(第一个数据集为蓝色,第二个为绿色)。
答案 0 :(得分:2)
您可以为plot
添加每个词干的格式参数。请注意以下'b'
来电中的'g'
和plt.stem
参数。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1, 2*np.pi, 10)
# v---------- add these args
plt.stem(x, np.sin(x), 'b', markerfmt='bo', label='sin')
plt.stem(x+0.05, np.cos(x), 'g', markerfmt='go', label='cos')
plt.legend()
plt.show()
答案 1 :(得分:1)
解决此问题的一种方法是在调用plt.stem
后修改词干行。我们可以使用plt.getp(..., 'color')
获取标记的颜色,并使用plt.setp
将该颜色指定给干线:
x = np.linspace(0.1, 2*np.pi, 10)
markerline, stemlines, baseline = plt.stem(x, np.sin(x), markerfmt='o', label='sin')
plt.setp(stemlines, 'color', plt.getp(markerline,'color'))
plt.setp(stemlines, 'linestyle', 'dotted')
markerline, stemlines, baseline = plt.stem(x+0.05, np.cos(x), markerfmt='o', label='cos')
plt.setp(stemlines, 'color', plt.getp(markerline,'color'))
plt.setp(stemlines, 'linestyle', 'dotted')
plt.legend()
plt.show()
产生
答案 2 :(得分:1)
import numpy as np
import matplotlib.pyplot as plt
x = [210 , 420, 630,840]
y = [1, 1, 1,1]
z = [100 , 200, 300,400]
plt.xlim(0,1000)
plt.ylim(-2,2)
markerline, stemlines, baseline = plt.stem(x, y, markerfmt='o', label='pcd')
plt.setp(stemlines, 'color', plt.getp(markerline,'color'))
plt.setp(stemlines, 'linestyle', 'dotted')
markerline, stemlines, baseline = plt.stem(z, y, markerfmt='go', label='can')
plt.setp(stemlines, 'color', plt.getp(markerline,'color'))
plt.setp(stemlines, 'linestyle', 'dotted')
plt.legend()
plt.show()