如何用数据框中的所有行名称标记轴

how to label axis with all the row names from dataframe

我的数据框包含大约 430 行:

     name         Right_Answers  Wrong_Answers
    Alice Ji      7                6
    Eleonora LI   2                5
    Mike The      6                5
    Helen Wo      5                3

为了可视化正确(红色)和错误(蓝色)答案的数量,我正在使用具有以下功能的 matplotlib 库:

g=df.plot(x='name', color=['b','r'], figsize=(100,50))  
ax.xaxis.set_major_locator(MultipleLocator(0.1))
labels = df.name.values[:]
ax = plt.gca()
ax.set_xticklabels(labels, rotation=90)

但我在 X 轴上始终只有 8 个名称作为标签,而不是 430 个(垂直旋转,因此 space 足以容纳更多行名称)!为什么会这样?我认为此方法将所有行名称放在轴 labels = df.name.values[:] 上,但显然不是。 你知道这个问题的其他解决方案吗? 我准备尝试其他库,如 seaborn 或 ggplot,即使与 matplotlib

相比,我还没有发现它们对数据框很舒服

假设您的数据在数据框中,您可以使用 Pandas' 内置绘图方法,例如:

df.plot(kind='bar', color=['red', 'blue'])

试试这个(iPython 笔记本):

import pandas as pd
import matplotlib.pyplot as plt

%pylab inline
mydata = [{'Name':'John', 'TRUE_ANSWER': 75, 'FALSE_ANSWER':25},
          {'Name':'Mike', 'TRUE_ANSWER': 60, 'FALSE_ANSWER':40},]
df = pd.DataFrame(mydata)
columns = ['Name','TRUE_ANSWER', 'FALSE_ANSWER']
df = df[columns]
df.index=df["Name"]
df.plot(kind='bar')

我认为尝试做你问我的问题 plotting & formatting seaborn chart from pandas dataframe 的累积图表对你的集合不起作用。希望这有帮助。