如何解决如何在X轴上使用两列
我正在使用以下代码在 x轴和 Final_Sales 中获得 Segment 和 Year y轴,但这会抛出一个错误。
代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
order = pd.read_excel("Sample.xls",sheet_name = "Orders")
order["Year"] = pd.DatetimeIndex(order["Order Date"]).year
result = order.groupby(["Year","Segment"]).agg(Final_Sales=("Sales",sum)).reset_index()
bar = plt.bar(x = result["Segment","Year"],height = result["Final_Sales"])
错误
有人可以帮助我更正我的代码以查看以下输出吗?
必需的输出
解决方法
尝试添加另一对括号-result[["Segment","Year"]]
,
您尝试做的是检索名为-“细分”,“年份”,
但是实际上,您要尝试的是检索列的列表-[“ Segment”,“ Year”]。
您的代码有几个问题:
- 使用多个列为数据框建立索引时,您希望将列列表传递给
[]
(请参见docs),如下所示:
result[["Segment","Year"]]
- 从您提供的图中看来,您想要将year用作 hue 。
matplotlib.barplot
没有色相参数,您必须按照here所述手动进行构建。相反,您可以使用已经导入的seaborn
库(请参见https://seaborn.pydata.org/generated/seaborn.barplot.html):
sns.barplot(x = 'Segment',y = 'Final_Sales',hue = 'Year',data = result)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。