有没有人知道我们是否可以在python matplotlib中绘制填充的箱形图? 我已经检查了http://matplotlib.org/api/pyplot_api.html,但我找不到有用的信息。
答案 0 :(得分:30)
@Fenikso显示了这样做的示例,但实际上它是以次优的方式进行的。
基本上,您希望将patch_artist=True
传递给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()
答案 1 :(得分:2)
您可以使用Plotly Python API执行此操作。此图表的图表,脚本和数据为here。
要控制颜色,您需要规定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团队的成员。