データの説明: 私がテストしているプログラムには、全体としてプログラムの機能を追加する 3 つの部分があります。たとえば、part1 はデータの 60% で機能し、part2 は追加の 10% で機能し、part3 はさらに 6% で機能します。
私がやりたいのは、「プログラムが処理したデータの合計量のうち、緑はpart1が処理した量、赤がpart2、黄色がpart3」を示す積み上げバーです。
5 つのファイルの 3 つのセットでプログラムをテストしたので、各データセットの 5 つの棒グラフをグループ化してグラフにこれを反映させたいので、最終的にグラフには 3 つの部分があり、それぞれが 1 インチ離れています。 barchart には、上記の積み上げ効果があります。
Y 軸はファイルが機能したパーセンテージ、Y 軸はファイルが属するグループの名前になることを目指しています。
いくつかのサンプルデータについては、これは私が試してきたものです:
meta_part1 = [5, 5.5, 4.67, 6.54, 4.4]
meta_part2 = [3.1, 3.3, 3.9, 3.5, 3.1]
meta_part3 = [1.3,1.4,1.7,2.4,0.89]
trans_part1 = [90,89.5,94.67,96.54,94.4]
trans_part2 = [11.1,11.3,10.9,11.5,12.1]
trans_part3 = [11.3,11.4,11.7,12.4,10.89]
s_part1 = [55,55.5,54.67,56.54,54.4]
s_part2 = [11.1,11.3,10.9,11.5,12.1]
s_part3 = [11.3,11.4,11.7,12.4,10.89]
meta、trans、および s はすべてグループです。
これまでに失敗したコードは次のとおりです。
import matplotlib.pyplot as plt
import numpy as np
import numpy as np
from numpy.random import randn
import pandas as pd
from scipy import stats
import matplotlib as mpl
import seaborn as sns
meta_part1 = [5, 5.5, 4.67, 6.54, 4.4]
meta_part2 = [3.1, 3.3, 3.9, 3.5, 3.1]
meta_part3 = [1.3,1.4,1.7,2.4,0.89]
trans_part1 = [90,89.5,94.67,96.54,94.4]
trans_part2 = [11.1,11.3,10.9,11.5,12.1]
trans_part3 = [11.3,11.4,11.7,12.4,10.89]
s_part1 = [55,55.5,54.67,56.54,54.4]
s_part2 = [11.1,11.3,10.9,11.5,12.1]
s_part3 = [11.3,11.4,11.7,12.4,10.89]
N = 5
ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars: can also be len(x) sequence
p1 = plt.bar(ind, meta_part1, width, color='y', bottom=meta_part2)
p2 = plt.bar(ind, meta_part2, width, color='r', bottom=meta_part3)
p3 = plt.bar(ind, meta_part3, width, color='g')
plt.ylabel('Scores')
plt.title('Difference between stitchers')
plt.xticks(ind+width/3., ('Test1', 'Test2', 'Test3', 'Test4', 'Test5') )
plt.yticks(np.arange(0,10,1))
plt.legend( (p1[0], p2[0], p3[0]), ('Part1', 'Part2', 'Part3') )
ax.autoscale(tight=True)
plt.show()
ただし、これは2つのスタック部分を持つバーしか生成せず、3番目が最初の部分にマージされているため、これは役に立たず、マージをこのコードに結合する方法を見つけることができませんでした.