2013-12-15 7 views
7

Я новичок в matplotlib, и я пытаюсь использовать его в pandas для построения простых диаграмм. У меня есть DataFrame, который содержит две метки «score» и «person», полученные из другого DF.Простая настройка диаграммы matplotlib/pandas (метки, тики и т. Д.)

df1 = DataFrame(df, columns=['score','person']) 

Производство этого вывода:

table output

Я пытаюсь создать простую гистограмму, чтобы показать каждый человек в разных цветах, и это то, что я до сих пор:

df1.plot(kind='bar', title='Ranking') 

bar chart

Как я могу CuS подстройте его так, чтобы на диаграмме отображались имена людей по оси x с уникальными цветами и удаляли рамку вокруг фигуры? Как я могу сделать это горизонтальной гистограммой?

Заранее за вашу помощь.

+4

я просто хочу сказать, что я люблю свой рисунок мастерство и заплатил бы деньги за вывод моих графиков, таких как – swyx

+2

@swyx: они создаются matplot lib: * [xkcd-style plot] (http://matplotlib.org/xkcd/examples/showcase/xkcd.html) *, вдохновленный в свою очередь [этим вопросом на Mathematica.SX] (https: // mathematica. stackexchange.com/questions/11350/xkcd-style-graphs). – ojdo

+0

@ojdo спасибо! Я хотел уточнить, что некоторое время назад –

ответ

9

Я думаю, это даст вам идею:

df = pd.DataFrame({'score':np.random.randn(6), 
        'person':[x*3 for x in list('ABCDEF')]}) 

ax = plt.subplot(111) 
df.score.plot(ax=ax, kind='barh', color=list('rgbkym'), title='ranking') 
ax.axis('off') 
for i, x in enumerate(df.person): 
    ax.text(0, i + .5, x, ha='right', fontsize='large') 

для

person score 
0 AAA 1.79 
1 BBB 0.31 
2 CCC -0.52 
3 DDD 1.59 
4 EEE 0.59 
5 FFF -1.03 

вы получите:

hbar

+0

Спасибо. Как вы оцениваете порядок и показываете значения для каждого бара? (т.е. 1,79 для AAA в первом положении сверху вниз, DDD во втором положении и т. д.?). –

+0

@LuisMiguel вы можете использовать 'ax.text (x, y, string)', чтобы добавить дополнительный текст в график в позиции (x, y). порядок такой же, как в серии/кадре данных –

+2

@LuisMiguel это может помочь: http://stackoverflow.com/questions/19917587/matplotlib-advanced-bar-plot/19919397#19919397 –

-2

Ознакомьтесь с документами для pd.DataFrame.plot() для получения дополнительной информации. Вы также обязательно захотите ознакомиться с plotting with matplotlib, а также самими matplotlib docs.

Получение горизонтальной гистограммы легко, просто используйте `kind = 'barh'.

Смежные вопросы