此问题与Visually separating bar chart clusters in pandas
有些相关我正在阅读并绘制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轴上用“”替换'nan'标签?
我试过了: df.rename(index = {'nan':“”})
但是有一个断言失败
assert(new_axis.is_unique)
可能是因为df有多个'nan'索引。想法?
-Thanks
答案 0 :(得分: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()