如何在 matplotlib 中制作更粗的主干线

How to make thicker stem lines in matplolib

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

这是我的代码

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()

我改变了plt.stem(n,x.real,linewidth=10),但没有任何改变。 plt.stem中没有设置linewidth的函数吗?

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

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()

这也可以使用 plt.setp() 进行修改,如 matplotlib 文档中所示 example. The plt.setp() method 允许您在创建艺术家对象后设置其属性。

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()