в Python библиотек matplotlib заполнены коробчатых диаграмм
кто-нибудь знает, можем ли мы построить заполненные boxplots в python matplotlib? Я проверил http://matplotlib.org/api/pyplot_api.html но я не мог найти полезной информации об этом.
2 ответов
пример того, что @Fenikso показывает пример этого, но на самом деле он делает это неоптимальным способом.
в основном, вы хотите пройти patch_artist=True
to boxplot
.
в качестве быстрого примера:
import matplotlib.pyplot as plt
import numpy as np
data = [np.random.normal(0, std, 1000) for std in range(1, 6)]
plt.boxplot(data, notch=True, patch_artist=True)
plt.show()
если вы хотите контролировать цвет, сделайте что-то подобное этому:
import matplotlib.pyplot as plt
import numpy as np
data = [np.random.normal(0, std, 1000) for std in range(1, 6)]
box = plt.boxplot(data, notch=True, patch_artist=True)
colors = ['cyan', 'lightblue', 'lightgreen', 'tan', 'pink']
for patch, color in zip(box['boxes'], colors):
patch.set_facecolor(color)
plt.show()
вы можете сделать это с помощью Plotly Python API. График, скрипт и данные для этого графика являются здесь.
чтобы контролировать цвет, вы хотите оговорить fillcolor
. Здесь он не установлен; по умолчанию его нужно заполнить. Или вы можете сделать его прозрачным, добавив 'fillcolor':'rgba(255, 255, 255, 0)'
. Вы также можете стиль с GUI, чтобы настроить его.
import plotly
py = plotly.plotly(username='username', key='api_key')
from numpy.random import lognormal
x=[0]*1000+[1]*1000+[2]*1000
y=lognormal(0,1,1000).tolist()+lognormal(0,2,1000).tolist()+lognormal(0,3,1000).tolist()
s={'type':'box','jitter':0.5}
l={'title': 'Fun with the Lognormal distribution','yaxis':{'type':'log'}}
py.plot(x,y,style=s,layout=l)
полное раскрытие: я в команде Plotly.