積み上げ棒グラフを生成して、複数の日にわたる1時間ごとの3つのパラメータを追跡しようとしています。サンプルプロットの画像はSamplePlotです。 しかし、私はこれをPythonでプロットすることに成功しませんでした。私がPythonの初心者であるという事実は、事態を悪化させます。pythonでmatplotlibを使用して積み上げ棒グラフに複数の列を積み重ねる3
この質問に以前に回答した2つの試みは、Horizontal stacked bar chart in Matplotlibとstack bar plot in matplotlib and add label to each section (and suggestions)です。しかし、私は、上記の解決策のいずれかの後に、望ましい結果を達成することができませんでした。
誰でもプロットを生成する方法や方向を指示する方法に関するガイダンスを私に提供できますか?
編集1: 次のように私が書いたコードは次のとおりです。
import matplotlib.pyplot as plt; plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt
status_day1 = [[0.2,0.3,0.5], [0.1,0.3,0.6], [0.4,0.4,0.2], [0.6,0.1,0.4]]
status_day2 = [[0.1,0.2,0.7], [0.3,0.2,0.5], [0.1,0.5,0.4], [0.2,0.5,0.3]]
day = ('Day1', 'Day2')
fig = plt.figure(figsize=(10,8))
ax = fig.add_subplot(111)
for x in range(0,4): #Looping through every hour
for y in range(0,3): #Looping through every parameter
if y==0:
ax.bar(1, status_day1[x][y],color='b',align='center')
elif y==1:
ax.bar(1, status_day1[x][y],color='r',align='center')
else:
ax.bar(1, status_day1[x][y],color='g',align='center')
# I am assuming that the three parameters for every hour are getting stacked on top of one another
for x in range(0,4):
for y in range(0,3):
if y==0:
ax.bar(1, status_day2[x][y],color='b',align='center')
elif y==1:
ax.bar(1, status_day2[x][y],color='r',align='center')
else:
ax.bar(1, status_day2[x][y],color='g',align='center')
ax.set_xticklabels(day)
ax.set_xlabel('Day')
ax.set_ylabel('Hours')
plt.show()
実際に何を試してみましたか? – wflynny
@wflynny、私の質問を見ていただきありがとうございます。私は最近の編集を行いました。これは、私が作った試みを大文字にするものです。 –