条形图数据:
sum_values = {2000: 258004, 2001: 243411, 2002: 234801, 2003: 231303, 2004: 235103, 2005: 234102, 2006: 236045, 2007: 262238, 2008: 317133, 2009: 337785, 2010: 379818, 2011: 425237, 2012: 446610}
折线图数据:
avg_values = {'2006': 29034, '2007': 29612, '2008': 28551, '2009': 39320, '2010': 30061, '2011': 24331, '2012': 23579, '2013': 17552, '2014': 17673, '2015': 19620, '2016': 20894}
我的图形代码片段:
plt.figure(1, figsize=(10,10))
barchart = plt.bar(list(sum_values.keys()), list(sum_values.values()), color='red')
linechart = plt.plot(list(sum_values.values()), color='blue')
我的绘图结果截图:
- 如何绘制带有次级y轴的折线图?
- 由于两个图表的x值不同,如何仅绘制公共x值?
2条答案
按热度按时间pwuypxnk1#
唯一的问题是,条形图数据中的键类型为
string
。除此之外,您没有为线图提供x值,因此avg_values
仅在其索引上绘制。假设你修复了数据类型问题,这段代码应该可以工作:
请注意,您不需要根据dict的键或值来制作列表。
但是,如果由于某种原因无法更改
sum_values.keys()
的数据类型,则可以将类型转换为barplot命令的int inline,如下所示:(In对于map对象的情况,您确实需要列出其结果)
要仅查看公共x值部分,您可以在计算公共x值后设置x轴限制,如下所示:
m4pnthwp2#
用于筛选常用年份的数据准备:
用次轴绘制普通年份!