5

Matplotlib のhist関数 withを使用してプロットされたヒストグラムの色と線のスタイルを制御するのに問題がありstacked=Trueます。積み上げられていない単一のヒストグラムの場合、問題はありません。

import pylab as P

mu, sigma = 200, 25
x0 = mu + sigma*P.randn(10000)

n, bins, patches = P.hist(
    x0, 20,
    histtype='stepfilled',
    facecolor='lightblue'
    )

しかし、追加のヒストグラムを導入すると、

import pylab as P

mu, sigma = 200, 25
x0 = mu + sigma*P.randn(10000)
x1 = mu + sigma*P.randn(7000)
x2 = mu + sigma*P.randn(3000)

n, bins, patches = P.hist(
    [x0,x1,x2], 20,
    histtype='stepfilled',
    stacked=True,
    facecolor=['lightblue','lightgreen','crimson']
    )

次のエラーがスローされます。

ValueError: to_rgba: Invalid rgba arg "['lightblue', 'lightgreen', 'crimson']"
could not convert string to float: lightblue

このcolor=['lightblue', 'lightgreen', 'crimson']オプションを使用しても機能しますが、名前付きの Matplotlib 色を使用しながら、塗りつぶしと線の色を個別に直接制御したいと考えています。Matplotlib のバージョン 1.2.1 を使用しています。

4

1 に答える 1

3

facecolorリストではなく、単一の名前付きの色である必要がありますが、P.hist使用後にこれを追加すると、仕事が完了する場合があります。

for patch in patches[0]: patch.set_facecolor('lightblue')
for patch in patches[1]: patch.set_facecolor('lightgreen')
for patch in patches[2]: patch.set_facecolor('crimson')
于 2013-07-08T00:28:13.710 に答える