带有多个y轴的pandas / matplotlib图

时间:2017-02-21 11:14:37

标签: python pandas matplotlib

我有一个DataFrame如下:

                                   Rate per 100,000 population  Gambling EXP per Adult
Local Government Area                                                     
City of Banyule                             7587.7              555.188876
City of Bayside                             5189.9              171.282451
City of Boroondara                          4877.0              141.675636
City of Brimbank                            9739.0              904.959407
City of Casey                               7790.6              561.086313

我已经多次尝试绘制两个y轴对应右两列,最左边的列是x轴。但到目前为止,我只设法获得两个轴。我试图在这里模仿解决方案:http://matplotlib.org/examples/api/two_scales.html但我一直都在失败。我还看过其他stackoverflow Q& S但到目前为止还没有发现它们。如果有人能帮助我解决这个问题会很棒。欢呼声。

1 个答案:

答案 0 :(得分:3)

你真的应该包含你尝试过的代码,这样人们才能真正指出你正确的方向。尽管如此,我猜你错过了pandas将打开一个新的图形和新的轴对象,除非你指定一个预先存在的轴来绘制。

import pandas as pd
import matplotlib.pyplot as plt

# separate data file
dat = pd.read_csv('dat.csv', index_col='Local Government Area')

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()

# the ax keyword sets the axis that the data frame plots to
dat.plot(ax=ax1, y='Rate per 100 000 population', legend=False)
dat.plot(ax=ax2, y='Gambling EXP per Adult', legend=False, color='g')
ax1.set_ylabel('Rate per 100,000 population')
ax2.set_ylabel('Gambling EXP per Adult')
plt.show()

你需要更多的东西来获得一个好看的情节,但这应该让你开始。