77515


まず、`pandas`は関係なく`matplotlib`にシンプルにデータを渡す書き方だと下記になると思います。

該当ドキュメントはおそらくこちら  
<https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.bar.html>

書いてみたコード:

[code]

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.DataFrame({
      'name': ['A', 'B', 'C', 'D', 'E'],
      'value': [10000, 5000, 1000, 500, 100]
    })
    
    plt.bar(df['name'], df['value'])
    
[/code]

上記ドキュメントに、

[code]

    x: float or array-like
    The x coordinates of the bars. See also align for the alignment of the bars to the coordinates.
    
    height: float or array-like
    The height(s) of the bars.
    
[/code]

とあるので、`x`に`array-like`なもの、`height`にも`array-like`なものを渡したという認識です。

さて、`pandas`には`plot`メソッド（？）が生えているようで、下記のようにも書けます。

[code]

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.DataFrame({
      'name': ['A', 'B', 'C', 'D', 'E'],
      'value': [10000, 5000, 1000, 500, 100]
    })
    
    df.plot.bar(x='name')
    
[/code]

おそらくこれに関するドキュメントは、  
<https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.plot.html>  
だと思うのですが、デフォルトで`matplotlib`を使っていることと`Parameters`の記載はあるように思うのですが、インスタンス変数にあたる`df`の状態に応じて振る舞いが変わることには言及がないように思います(Pythonの詳しい文法はあまり理解していないので間違えているかも？)。

本来`matplotlib`を使うのであれば、引数に`x`と`height`を渡す必要があるが、それが`df`から自明に決められているように思います。

これらの振る舞いについて記載されているところはありますか？（ないのであれば、どのように振る舞うと知られているのでしょうか？ドキュメントにはソースコードへのリンクがありますが、ソースコードを読んで理解するのでしょうか？）


CC BY-SA 4.0
2021-06-13T01:01:21.380
77512
2021-06-13T02:58:01.980
2021-06-13T01:31:42.390
9008
9008
question
python pandas matplotlib
pandasオブジェクトとmatplotlibの関係がわからない


より明確なのはこちらのページでしょう。  
以下の`####`で訳した部分が該当すると思われます。  
[pandas.DataFrame.plot.bar](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.plot.bar.html)

>
[code]

>     DataFrame.plot.bar(x=None, y=None, **kwargs)    [source]
>        Vertical bar plot.
>  
>        A bar plot is a plot that presents categorical data with rectangular
> bars with lengths proportional to the values that they represent. A bar plot
> shows comparisons among discrete categories. One axis of the plot shows the
> specific categories being compared, and the other axis represents a measured
> value.
>        #### プロットの一方の軸は比較されている特定のカテゴリを示し、もう一方の軸は測定値を表します。
>  
>        Parameters:
>           x : label or position, optional
>              Allows plotting of one column versus another. If not specified,
> the index of the DataFrame is used.
>              #### 指定しない場合、DataFrameのインデックスが使用されます。
>  
>           y : label or position, optional
>              Allows plotting of one column versus another. If not specified,
> all numerical columns are used.
>              #### 指定しない場合、すべての数値列が使用されます。
>  
[/code]

そのページの下の方に色々と例が示されています。

> Plot a whole dataframe to a bar plot. Each column is assigned a distinct
> color, and each row is nested in a group along the horizontal axis.  
>  データフレーム全体を棒グラフにプロットします。各列には異なる色が割り当てられ、各行は横軸に沿ってグループにネストされます。
>
> Plot only selected categories for the DataFrame.  
>  DataFrameの選択されたカテゴリのみをプロットします。


CC BY-SA 4.0
2021-06-13T02:58:01.980
77515
2021-06-13T02:58:01.980
26370
77512
answer