您可以使用pandas堆积条形图。这样做的好处是,您可以使用pandas轻松创建必须生成的列/值对表。在from matplotlib import pyplot as plt
import pandas as pd
all_data = [(‘2018-04-09′, ’10:18:11’, [‘s1’,10],[‘s2’,15],[‘s3’,5]),
(‘2018-04-09′, ’10:20:11’, [‘s4’,8], [‘s2’,20],[‘s1’,10]),
(‘2018-04-10′, ’10:30:11’, [‘s4’,10],[‘s5’,6], [‘s6’,3]) ]
load data into dataframe
df = pd.DataFrame(all_data, columns = list(“ABCDE”))
combine the two descriptors
df[“day/time”] = df[“A”] + “\n” + df[“B”]
assign each list to a new row with the appropriate day/time label
df = df.melt(id_vars = [“day/time”], value_vars = [“C”, “D”, “E”])
split each list into category and value
df[[“category”, “val”]] = pd.DataFrame(df.value.values.tolist(), index = df.index)
create a table with category-value pairs from all lists, missing values are set to NaN
df = df.pivot(index = “day/time”, columns = “category”, values = “val”)
plot a stacked bar chart
df.plot(kind = “bar”, stacked = True)
give tick labels the right orientation
plt.xticks(rotation = 0)
plt.show()
输出:
Original: https://blog.csdn.net/weixin_35881820/article/details/114456329
Author: 死神骑马来
Title: python绘制堆叠图_在python中使用plotly创建堆叠图形或条形图
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/678207/
转载文章受原作者版权保护。转载请注明原作者出处!