为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫情节混合条和线

熊猫情节混合条和线

慕妹3242003 2022-12-20 11:20:13
我有两个 groupby 操作的结果,第一个,m_y_count以这种多索引格式(第一列年份和第二列月份):2007    12    392008    1     3        2     1202009    6     10002010    1     86575        2     726212        3     2987954        4     3598215        6     160597而另一个y_count,只有年:2007    692008    37922009    52010    791我的问题是:如何将它们绘制在同一个图中,使用不同的(对数)y 轴,使用带标记的m_y_count条形图?y_count我的尝试:ax = y_count.plot(kind="bar", color='blue', log = True)ax2 = ax.twinx()m_y_count.plot(kind="bar", color='red', alpha = 0.5, ax = ax2)这会为两个 pandas 系列生成条形图,但是当我尝试kind="line"在第一行中更改为时,没有出现任何行。关于如何进行的任何提示?谢谢!
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

编辑:

我忘了你想要一个作为酒吧。


此外,如果您不想弄乱所有这些datetime东西,您可以将年份绘制为 x 轴上的整数(月份是 1/12 的分数)。但是我发现,datetime一旦将所有内容都作为时间对象,使用就非常聪明。


我不太熟悉直接pandas从matplotlib. 不过,我无法完全复制您的数据:要遵循下面的示例,您必须将多索引转换为单个日期时间索引,我认为这不会太难。


import datetime as dt

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.dates as mdates


#making fake data

dates1 = pd.date_range('12-01-2007','06-01-2010',periods=9)

data1 = np.random.randint(0,3598215,9)

df1 = pd.DataFrame(data1,index=dates1,columns=['Values'])

dates2 = pd.date_range('01-01-2006',periods=4,freq='1Y') #i don't get why but this starts at the end of 2006, near 2007

df2 = pd.DataFrame([69,3000,5,791],index=dates2,columns=['Values'])


#plotting

fig, ax = plt.subplots()

ax.bar(df2.index,df2['Values'],width=dt.timedelta(days=200),color='red',label='df2')

ax.set_yscale('log')

ax.set_ylabel('DF2 values',color='red')


ax2 = ax.twinx()

ax2.plot(df1.index,df1['Values'],color='blue',label='df1')

ax2.set_yscale('log',)

ax2.set_ylabel('DF1 values',color='blue')


years = mdates.YearLocator() #locate years for the ticks

ax.xaxis.set_major_locator(years) #format the ticks to just show years

xfmt = mdates.DateFormatter('%Y')

ax.xaxis.set_major_formatter(xfmt)


ax.legend(loc=0)

ax2.legend(loc=2)

//img1.sycdn.imooc.com//63a12a0f0001097304260247.jpg//img1.sycdn.imooc.com//63a12a130001097304260247.jpg

查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信