如何在matplolib中制作更粗的茎线

연평도*_*게잡이 2 python stem

我想在使用时在python中制作更粗的干线plt.stem.

这是我的代码

import matplotlib.pyplot as plt
import numpy as np

N = 20

n = np.arange(0, 2*N, 1)

x = np.exp(-n/N)*np.exp(1j * 2*np.pi/N*n)

plt.stem(n,x.real) 

plt.show()
Run Code Online (Sandbox Code Playgroud)

我改变了plt.stem(n,x.real,linewidth=10),但没有改变.有没有函数来设置linewidthplt.stem

Chr*_*ler 7

也可以使用plt.setp()matplotlib 文档示例中所示的方式进行修改。该plt.setp()方法允许您在创建艺术家对象后设置其属性。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 2*np.pi, 10)
markerline, stemlines, baseline = plt.stem(x, np.cos(x), '-.')
plt.setp(stemlines, 'linewidth', 4)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


And*_*eak 6

该文档plt.stem显示该函数返回由绘图创建的所有线对象.您可以使用它在绘图后手动使线条变粗:

import matplotlib.pyplot as plt
import numpy as np

N = 20
n = np.arange(0, 2*N, 1)
x = np.exp(-n/N)*np.exp(1j * 2*np.pi/N*n)

markers,stems,base = plt.stem(n,x.real) 
for stem in stems:
    stem.set_linewidth(10)
plt.show()
Run Code Online (Sandbox Code Playgroud)

结果