如何改变熊猫箱图中的胡须线条?

时间:2017-09-14 18:28:33

标签: python pandas matplotlib boxplot linestyle

有没有办法将熊猫箱图中胡须的线型改为' - '?默认似乎是' - '。

我试过了:

color = dict(boxes='black', whiskers='black', medians='red', caps='black')
styles=dict(whiskers='-')
bp = df.plot.box(color=color, style=styles)

然而,虽然颜色以我想要的方式变化,但样式输入似乎根本不会影响情节。

Here is an example. I always get dashed lines for my whiskers, but would like solid lines.

我也试过

boxprops = dict(linewidth=1.0, color='black')
whiskerprops = dict(linestyle='-',linewidth=1.0, color='black')
plt.figure()
df.boxplot(boxprops=boxprops, whiskerprops=whiskerprops)

这里,df.boxplot根本不接受输入。

这与此密切相关 Pandas boxplot: set color and properties for box, median, mean

3 个答案:

答案 0 :(得分:6)

Ted Petrou的帮助:

将whiskerprops = dict()直接放入df.plot.box行:

color = dict(boxes='black', whiskers='black', medians='red', caps='black')
bp = df.plot.box(color=color,whiskerprops = dict(linestyle='-',linewidth=1.0
, color='black'))

至于df.boxplot(),by参数似乎有问题。在这里,将whiskerprops和boxprops直接包括在论证中也有帮助。但是我仍然无法改变盒子。颜色!它仍然是默认的蓝色。以下代码产生实线黑色晶须,但是盒子是蓝色的。盒子的线宽可以改变!

plt.figure()
df.boxplot(boxprops= dict(linewidth=1.0, color='black')
, whiskerprops=dict(linestyle='-',linewidth=1.0, color='black'))

如果有人可以帮助在df.boxplot()中更改框颜色,请进行评论。从我得到的pandas文档中,人们应该反正使用df.plot.box。

答案 1 :(得分:2)

import numpy as np
import pandas as pd

mu, sigma = 0, 1 
s = np.random.normal(mu, sigma, 1000)

df = pd.DataFrame(s)

bPlot = df.boxplot(whiskerprops = dict(linestyle='--'
                           , linewidth=2))

enter image description here

答案 2 :(得分:0)

我这里没有熊猫,但它使用的是matplotlib。 pyplot.boxplot返回

  

将框图的每个组件映射到创建的matplotlib.lines.Line2D实例列表的字典。

一组线条用于胡须。您可以通过字典访问每个胡须来设置linestyle property

from pprint import pprint
import matplotlib.pyplot as plt

data = [[1, 2, 3, 4, 5], [2, 3, 4], [1, 1.2, 1.4, 1.8]]
a = plt.boxplot(data)
pprint(a)
for whisker in a['whiskers']:
    whisker.set_linestyle('-.')
    print(whisker.get_linestyle())
plt.show()
plt.close()

line_styles_reference示例中显示了可用的线条样式。