有人知道在python的matplotlib中是否可以绘制填充的箱线图吗? 我已经查看了http://matplotlib.org/api/pyplot_api.html,但我没有找到有用的信息。
有人知道在python的matplotlib中是否可以绘制填充的箱线图吗? 我已经查看了http://matplotlib.org/api/pyplot_api.html,但我没有找到有用的信息。
@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()
patch.set_alpha(0.5)
以实现透明度。 - n1000set
方法通过组合调用“set_<blah>”来实现。例如:patch.set(facecolor=color, alpha=0.5)
。 - Joe Kingtonpatch_artist=False
,默认值)以获取不透明的线条。 - Lutz Prechelt要控制颜色,您需要指定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团队的一员。