Matplotlib-在条形图上叠加折线图并对齐yticks

乔乔

我试图在条形图上绘制折线图,​​但刻度和点的实际位置均未对齐。我希望他们保持一致。(请注意,我将在另一侧绘制相似(但相反)的另一组数据,因此是子图。)

这是我到目前为止的

import matplotlib.pyplot as plt
import numpy as np
group = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]
amount1 = [967, 975, 1149, 1022, 852, 975, 1025, 1134, 994, 1057, 647, 1058]
amount2 = [286, 364, 111, 372, 333, 456, 258, 152, 400, 181, 221, 441]

f, (ax1, ax2) = plt.subplots(nrows = 1, ncols = 2, sharey=True, figsize = (17,8))
ax1_2 = ax1.twinx()

# y_pos
y_pos = np.arange(len(group))

# plot men
ax1.barh(y_pos, amount1, align = 'center')
ax1_2.plot(amount2, group, color = 'black', marker = 'o')

# ticks
ax1.set_yticks(y_pos)
ax1.set_yticklabels(group)
ax1.invert_xaxis()
ax1.yaxis.tick_right()

# padding
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.05, hspace=None)

plt.show()
plt.close()

结果图

我尝试设置刻度线,但是条形图和折线图似乎具有非常不同的概念。我也尝试过在ax1上绘制图形,但是折线图超出了条形图,并且它们根本没有对齐。我也尝试过,ax1_2.set_yticks(ax1.get_yticks())但这有一个类似的问题。

任何帮助,将不胜感激!

皮帕达万

您可以在中进行绘制ax1,并删除y_pos,因为最后它们都共享group变量作为y坐标。

然后,您可以height在barh图上添加一个

这里是代码:

import matplotlib.pyplot as plt

group = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]
amount1 = [967, 975, 1149, 1022, 852, 975, 1025, 1134, 994, 1057, 647, 1058]
amount2 = [286, 364, 111, 372, 333, 456, 258, 152, 400, 181, 221, 441]

f, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharey=True, figsize=(17, 8))

# plot men
a = ax1.barh(group, amount1, height=4)
ax1.plot(amount2, group, color='black', marker='o')

# ticks
ax1.set_yticks(group)
ax1.set_yticklabels(group)
ax1.invert_xaxis()
ax1.yaxis.tick_right()

# padding
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.05,
                    hspace=None)

plt.show()
plt.close() 

并带有结果的图像:

在此处输入图片说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

为什么Matplotlib开始绘制条形图而不是折线图

如何在彼此下方的两个不同轴上对齐条形图和折线图的 matplotlib x-ticks?

参数尺寸在 matplotlib 折线图上不兼容

Pandas 和 matplotlib - 在折线图上绘制散点图

Matplotlib:如何在2个独立的轴上显示条形图和折线图例?

如何使用按钮向Matplotlib条形图和折线图添加排序功能

matplotlib中的折线图

Matplotlib 折线图动画

从数据框在Python / matplotlib中的条形图上绘制线图

来自数据框的 matplotlib 折线图

Django中的matplotlib折线图

在matplotlib或R中重现折线图

如何使用Matplotlib创建折线图

Matplotlib datetime折线图为阴影

Matplotlib折线图计数吗?

如何确保 matplotlib 折线图是正确的?

在 Jupyter 中显示 Matplotlib 折线图

Matplotlib:如何用纯色自动填充折线图上方的区域?

Python Matplotlib-如何仅在折线图上注释y轴值?

折线工具提示显示在折线图上,但不显示在条形图上

Matplotlib中条形图的平均折线

matplotlib条形图上的底部边框

Matplotlib 条形图上的颜色负值不同

使用Seaborn和Matplotlib在热图和折线图的共享子图中对齐x轴刻度

ggplot - 一个图上的双折线图和堆积条形图

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

Chart.js在条形图和折线图上具有双轴

如何调整从for循环创建的matplotlib折线图的大小?