0

以下のようなデータフレームがあります

import pandas as pd
import matplotlib.pylab as plt
df = pd.DataFrame({'name':['one', 'two', 'three'], 'assess':[100,200,300]})

このようなエラーバーを作成したい

c = 30
plt.errorbar(df['name'], df['assess'], yerr=c, fmt='o')

そしてもちろん、私は得る

ValueError: could not convert string to float

文字列をフロートに変換できますが、値の署名が失われています。もっとエレガントな方法があるのでしょうか?

4

1 に答える 1

4

実際、Matplotlib は数値データのみを扱うことができます。matplotlib コレクションには、カテゴリ データがある場合の処理​​方法を示す例があります。解決策は、値の範囲をプロットし、後で または と の組み合わせを使用してラベルを設定することplt.xticks(ticks, labels)です。ax.set_xticks(ticks)ax.set_xticklabels(labels)

あなたの場合、前者は正常に動作します:

import pandas as pd
import matplotlib.pylab as plt
df = pd.DataFrame({'name':['one', 'two', 'three'], 'assess':[100,200,300]})

c = 30
plt.errorbar(range(len(df['name'])), df['assess'], yerr=c, fmt='o')
plt.xticks(range(len(df['name'])), df['name'])

plt.show()
于 2016-11-15T18:37:08.300 に答える