Как сделать более толстые линии ствола в матполибе

Я хочу сделать более толстые линии ствола в 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()

Я изменился plt.stem(n,x.real,linewidth=10), но ничего не изменилось. Нет ли функции для установки linewidth в plt.stem?

2 ответа

Решение

Документация 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()

результат

Это также может быть изменено с помощью plt.setp() как показано в примере документации matplotlib. plt.setp() Метод позволяет установить свойства объекта Artist после его создания.

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

Другие вопросы по тегам