2

この質問は、パンダの棒グラフのクラスターを視覚的に分離することに多少関連しています

私は tmp.csv ファイルを読んでプロットしています:

pol1 pol2 pol3
perim 0.54 0.64 0.40
mst 0.08 0.12 0.12
treeadd 0.25 0.34 0.35
health 0.14 0.17 0.17
bisort 0.48 0.56 0.56
em3d 0.14 0.17 0.17

g721d 1.41 2.58 2.58
mesa 1.16 1.8 1.8
epic 1.82 2.43 2.43
jpege 1.18 1.68 1.68

gzip 1.15 1.43 1.45
vpr 0.19 0.24 0.24
gcc 0.82 1.11 1.15
mcf 0.05 0.05 0.05
crafty 0.67 1.17 1.17

と:

#!/usr/bin/env python

from pandas import *
import matplotlib.pyplot as plt
from numpy import zeros

# Create original dataframe
df = read_csv('tmp.csv',sep='\s')

print df

df.plot(kind='bar')
plt.show()

そして私は得る:

         pol1  pol2  pol3
perim    0.54  0.64  0.40
mst      0.08  0.12  0.12
treeadd  0.25  0.34  0.35
health   0.14  0.17  0.17
bisort   0.48  0.56  0.56
em3d     0.14  0.17  0.17
nan       NaN   NaN   NaN
g721d    1.41  2.58  2.58
mesa     1.16  1.80  1.80
epic     1.82  2.43  2.43
jpege    1.18  1.68  1.68
nan       NaN   NaN   NaN
gzip     1.15  1.43  1.45
vpr      0.19  0.24  0.24
gcc      0.82  1.11  1.15
mcf      0.05  0.05  0.05
crafty   0.67  1.17  1.17

と:

ここに画像の説明を入力

空行でクラスターが分離されていることに注意してください。これが私が望む効果です。x軸の「ナン」ラベルを「」に置き換える方法はありますか?

私が試した: df.rename(index={'nan': ""})

ただし、アサーションが失敗しています

assert(new_axis.is_unique)

おそらく、df にインデックスを付ける「nan」が複数あるためです。アイデア?

-ありがとう

4

1 に答える 1

2

を変更する代わりにDataFrame、おそらく matplotlib の xtick ラベルを変更するだけです。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('tmp.csv', sep = '\s')
df.plot(kind='bar')
locs, labels = plt.xticks()
plt.xticks(locs, [d if d==d else '' for d in df.index], rotation = 25)
plt.show()

ここに画像の説明を入力

于 2013-01-06T11:28:28.560 に答える