matplotlib 试图从数据框绘制多个条形图时出现键错误

pftdvrlh  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(163)

我从. csv加载df的原因是因为另一个文件创建了csv,然后这个文件将访问它(可能这是一个问题?不确定)

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('MAIN_DATAFRAME.csv')

def plot_graph_1(MAIN_DATAFRAME):
        df1 = MAIN_DATAFRAME.loc[['Bots']]
        df1 = df1.transpose()
        df2 = MAIN_DATAFRAME.loc[['Speed']]
        df2 = df2.transpose()
        df3 = MAIN_DATAFRAME.loc[['Weight']]
        df3 = df3.transpose()
        df4 = MAIN_DATAFRAME.loc[['Chargers']]
        df4 = df4.transpose()

        ax = df1.plot(kind='bar')
        df2.plot(ax=ax, kind='bar')
        df3.plot(ax=ax,kind='bar')
        df4.plot(ax=ax, kind='bar')
        ax.bar(ax, df1)
        plt.show()

plot_graph_1(df)

因此,我想有这个数据框被绘制,理想的条形图将共享轴和不同的颜色,以便他们可以区分时,堆叠在对方。
顺便说一句, Dataframe 如下:
| | 运行1|运行2|运行3|运行4|运行5|运行6|运行7|运行8|运行9|运行10|
| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------|
| 机器人|五个|六个|七|八个|九|十个|十一|十二|十三|十四|
| 速度|小行星一七九一|小行星2359|小行星2996|小行星3593|小行星4105|小行星4551|小行星4631|小行星465|小行星4672|小行星4674|
| 体重|六一二|七三三|八一零|八八八|九七八|小行星|小行星1079|小行星|小行星|小行星1092|
| 充电器|十个|十个|十个|十个|十个|十个|十个|十个|十个|十个|
我尝试更改访问 Dataframe 值的方式。我还尝试更改括号:将df2 = MAIN_DATAFRAME. loc "速度"更改为df2 = MAIN_DATAFRAME. loc ["速度"],但仍然得到键错误。

h9vpoimq

h9vpoimq1#

您可以转置整个DataFrame,然后像这样绘制它:

# Import libraries
import pandas as pd
import matplotlib.pyplot as plt

# Read data from CSV
df = pd.read_csv(
    "3.csv",
    index_col=0
)

# Define plotting function
def plot_bars_from_df(df: pd.DataFrame) -> plt.Axes:
    """Plot bar chart from DataFrame."""

    df = df.transpose()
    ax = df.plot(
        kind="bar"
    )

    return ax

# Call function
plot_bars_from_df(df)

您将获得以下output
但是,“机器人”和“充电器”比其他列小几个数量级,因此将它们绘制在一起没有多大意义。

相关问题