以下の通り記述してみましたけれど、うまく行きません。どうしたら、良いでしょう。
from pandas import DataFrame
# aが100、bが200の棒グラフを描きたい
df=DataFrame([100,200],index=['a','b'])
import matplotlib.pyplot as plt
plt.bar(df)
TypeError: bar() missing 1 required positional argument: 'height'
質問に書いてあるコードって、どこから持ってきました?
やったことはありませんが、ドキュメントを見る限り、pandas.DataFrame.prot.bar() と matplotlib.pyplot.bar() を混同しているような感じです。
bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
↑とあるように、matplotlib.pyplot.bar() は、最初のふたつの引数が省略できないとのことなので、以下のエラーが出ています。
TypeError: bar() missing 1 required positional argument: 'height'
ただ、第2引数を指定したとしても、第1引数が "x : sequence of scalars" とありますから、型があっていないので期待通りには動かないでしょう。
dandas.DataFrame.prot.bar() を呼んだ後に、matprotlib.pyplot.show() とかすれば良いのかな。
ググってみたら動きそうなコードはいっぱい落ちているような気がしますが。
a-kumaさま
2020/03/06 16:32:26ご連絡遅くなってしまいました。ありがとうございます。
以下にて描くことができました。もっとも、あちこちのウェッブサイトを参照し、なんとなく出来たのですが...
from pandas import DataFrame
import matplotlib.pyplot as plt
df = DataFrame({ 'a':[100], 'b': [200] })
ax = plt.subplot()
df.plot.bar(stacked=True, color=['#ff5900', '#ffa500'], width=0.15,ax=ax)
plt.show()
ちなみに、DataFrameの引数を、質問文の時の、
df = pd.DataFrame([100,200],index=['a','b'])とすると、
なぜか、思い通りのグラフとなりません~
棒グラフはPandasでも、Matplotlibでも描けるようなので、ご指摘の通り、混乱しております。マスターに時間がかかったりします~