2016-01-13 24 views
0

我有一个名为conversionRate这样数据帧:副区副轴线 - 的Python,matplotlib

 

      | State| Apps | Loans| conversionratio| 
2013-01-01 IL  1165 152 13.047210 
2013-01-01 NJ  2210 756 34.208145 
2013-01-01 TX  1454 73 5.020633 
2013-02-01 CA  2265 400 17.660044 
2013-02-01 IL  1073 168 15.657036 
2013-02-01 NJ  2036 739 36.296660 
2013-02-01 TX  1370 63 4.598540 
2013-03-01 CA  2545 548 21.532417 
2013-03-01 IL  1108 172 15.523466 

我打算绘制应用的贷款在主Y轴的数量和数目和在二次转化率轴为每个状态。

我尝试下面的代码:

import math 
rows =int(math.ceil(len(pd.Series.unique(conversionRate['State']))/2)) 
    fig, axes = plt.subplots(nrows=rows, ncols=2, figsize=(10, 10),sharex=True, sharey=False) 
    columnCounter = itertools.cycle([0,1]) 
    rowCounter1 = 0 
    for element in pd.Series.unique(conversionRate['State']): 
     rowCounter = (rowCounter1)//2 
     rowCounter1 = (rowCounter1+1) 
     subSample = conversionRate[conversionRate['State']==element] 
     axis=axes[rowCounter,next(columnCounter)] 
     #ax2 = axis.twinx() 
     subSample.plot(y=['Loans', 'Apps'],secondary_y=['conversionratio'],\ 
           ax=axis) 

我最终像下面的一个数字:

enter image description here

的问题是如何获取辅助轴的线来表示?如果我尝试下面(根据plot()中的手动设置secondary_y应选择性地绘制次轴中的那些列),我只能看到次轴上的I线。必须有一些简单而明显的我缺少的东西。我无法弄清楚它是什么!任何大师能帮忙吗?

subSample.plot(secondary_y=['conversionratio'],ax=axis) 

回答

1

您需要包括conversionrationy=['Loans', 'Apps','conversionratio']以及在secondary_y ...或更好,但离开这个参数了,因为用户要打印的所有列。

rows =int(math.ceil(len(pd.Series.unique(conversionRate['State']))/2)) 
fig, axes = plt.subplots(nrows=rows, ncols=2, figsize=(10, 
10),sharex=True, sharey=False) 
columnCounter = itertools.cycle([0,1]) 
rowCounter1 = 0 
for element in pd.Series.unique(conversionRate['State']): 
    rowCounter = (rowCounter1)//2 
    rowCounter1 = (rowCounter1+1) 
    subSample = conversionRate[conversionRate['State']==element] 
    axis=axes[rowCounter,next(columnCounter)] 
    #ax2 = axis.twinx() 
    subSample.plot(secondary_y=['conversionratio'], ax=axis) 

enter image description here

+0

当我漏下Y = [ '贷款', '应用', 'conversionratio'],它绘出仅conversionratio在次级轴。 – Arun

+1

你是什么意思?当我运行代码时,我已经包含了输出 – maxymoo

+0

明白了!对不起,它没有先在我的电脑上呈现。你的解决方案有效不知道为什么它不能为我提前工作。 – Arun