Pandas 条形图和线图问题

Pandas Graph Bar and Line plot problems

我正在尝试在条形图的顶部绘制折线图以从数据框进行分析。每次我尝试添加折线图时,右侧的 y 轴都会变得混乱,并且 x 轴上的条形图 headers 由于某种原因从正确变为字母顺序。我希望右边的y-axis是有序的,如果可能的话把线拉直,下面是添加线后的条形图 我试图在 x 上绘制索引值,它是城镇标签,Town/city 在左侧 y-axis,人口在右轴。

应该先是贝尔法斯特,然后是伦敦德里。

enter image description here

如果有人能提供帮助,我们将不胜感激。

x1= CitySample2017["index"]
y1= CitySample2017["Town/City"]



y2= CitySample2017["Population"]

ax1= CitySample2017.plot.bar(y="Town/City", x='index')

ax2 = ax1.twinx()

ax2.plot(x1, y2)

https://imgur.com/a/z4oSjWS

如果没有看到您的数据,我无法确定,但请尝试 运行 这个而不是您的代码:

ax1 = CitySample2017.plot.bar(x='index', y='Town/City')
ax2 = ax1.twinx()
CitySample2017.plot(x='index', y='Population', ax=ax2)

您正在使用 matplotlib 2.1。升级到 matplotlib 2.2 或更高版本,代码将按预期工作。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"index" : ["Belfast", "London", "Twoabbey", "Lisboa", "Barra"],
                   "town" : [5000,1000,600,600,500],
                   "pop" : [12,14,16,18,20]})

ax1= df.plot.bar(y="town", x='index')

ax2 = ax1.twinx()

ax2.plot(df["index"], df["pop"])

plt.show()