使用matplotlib在同一图中使用不同的y轴绘制条形图和线图(无熊猫)

杜松子酒

条形图数据:

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值?

SpghttCd

唯一的问题是,条形图数据中的键的类型是string除此之外,您不为线图提供x值,因此avg_values仅在其索引上进行绘制。
因此,假设您已解决数据类型问题,则此代码应该可以工作:

plt.figure(1, figsize=(10,10))

barchart = plt.bar(sum_values.keys(), sum_values.values(), color='red')
plt.twinx()
linechart = plt.plot(avg_values.keys(), avg_values.values(), color='blue')

请注意,您不需要从字典的键或值中列出列表。

但是,如果sum_values.keys()由于某种原因无法更改的数据类型,则可以将类型强制转换为barplot命令的int inline,如下所示:

barchart = plt.bar(list(map(int, sum_values.keys())), sum_values.values(), color='red')

(对于地图对象,您需要列出其结果列表)

在此处输入图片说明

仅用于查看通用x值部分,可以在计算通用x值后设置x轴限制,例如:

commonx = [a for a in avg_values.keys() if a in sum_values.keys()]
plt.xlim(min(commonx) - .5, max(commonx) + .5)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ggplot绘制线形图和条形图(带有辅助轴的线图)

在同一张图中绘制函数和条形图时出现轴问题

使用pandas和matplotlib绘制叠加图(折线图和条形图)

如何在 matplotlib 中使用不同的 xlimit 和 x 轴的大小绘制子图?

Python使用辅助y轴制作条形图和折线图

使用ggplot的条形图和折线图的多个y轴

Python:使用 DataFrame 绘制折线图和条形图时 DatetimeIndex 的不同行为

在Python中使用不同颜色的条形图

使用matplotlib和子图绘制多个条形图

如何在双Y轴图中的ggvis中对齐条形图和折线图?

在python中使用matplotlib绘制多个分组的条形图

同一图中的多个条形图保持相同的轴和相同的条形宽度

如何使用matplotlib绘制具有不同阴影和边缘颜色的条形图和图例?

如何在同一图表上用单独的轴绘制条形图和线形图?

堆积的条形图和折线图与任何android库在同一图中?

用熊猫在同一图中绘制条形图的平均值

如何在条形图和折线图的同一图上绘制多个列表?

如何使用 matplotlib 绘制条形图,“x”在名称中包含值和“y”

如何在R的同一图上创建具有不同x和y轴的两个条形图?

如何使用matplotlib.pyplot在x轴上创建分组的条形图(按月和年),在y轴上创建值的条形图?

如何在R中使用x,y数据绘制条形图和误差线

在Plotly的同一X轴和Y轴上有多个条形图

条形图和折线图在同一图表区域中时不同步

如何使用XlsxWriter绘制条形图并为同一系列中的每个条形填充不同的颜色

从具有不同y轴的pandas数据框中绘制条形图和线条

Matplotlib在一张图中绘制多个条形图

使用不同大小的 y 轴制作相同的 matplotlib 图

如何在 Python 中使用 pandas 和 matplotlib 绘制条形图时删除条形之间的空间?

在python中使用不同的时间索引在同一x轴上绘制多个直方图