如果两个Y轴成对缠绕,Python熊猫会绘制X轴偏移
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如果两个Y轴成对缠绕,Python熊猫会绘制X轴偏移,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2071字,纯文字阅读大概需要3分钟。
内容图文
![如果两个Y轴成对缠绕,Python熊猫会绘制X轴偏移](/upload/InfoBanner/zyjiaocheng/683/758a22bf6f5d4593829e39e6a14dd4f1.jpg)
我有一个包含3列的数据框:其中一个是“ groupby”列,另外两个是带有值的“普通”列.我也想生成一个箱线图和一个条形图.在条形图上,我想可视化每个组元素的出现次数.让我的示例代码更详细地告诉此数据框:
li_str = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']
df = pd.DataFrame([[i]+j[k] for i,j in {li_str[i]:np.random.randn(j, 2).tolist() for i,j in enumerate(np.random.randint(5, 15, len(li_str)))}.items() for k in range(len(j))]
, columns=['A', 'B', 'C'])
因此,以上我为li_str中的每个元素生成了随机数的随机值,并针对Band C列进行了处理.
然后,我仅可视化一个箱线图:
fig, ax = plt.subplots(figsize=(16,6))
p1 = df.boxplot(ax=ax, column='B', by='A', sym='')
我的结果是:
现在,我将每个组的元素数量可视化(因此,我上面使用np.random.randint(5,15,len(li_str))代码生成的随机数):
fig, ax = plt.subplots(figsize=(16,6))
df_gb = df.groupby('A').count()
p2 = df_gb['B'].plot(ax=ax, kind='bar', figsize=(16,6), colormap='Set2', alpha=0.3)
plt.ylim([0, 20])
我的结果是:
现在,我希望将这两个合二为一:
fig, ax = plt.subplots(figsize=(16,6))
ax2 = ax.twinx()
df_gb = df.groupby('A').count()
p1 = df.boxplot(ax=ax, column='B', by='A', sym='')
p2 = df_gb['B'].plot(ax=ax2, kind='bar', figsize=(16,6)
, colormap='Set2', alpha=0.3, secondary_y=True)
plt.ylim([0, 20])
我的结果是:
有人知道为什么我的箱线图通过一个X轴刻度线向右移动吗?我使用Python 3.5.1,Pandas 0.17.0,matplotlib 1.4.3
谢谢!!!
解决方法:
这是因为即使标签相同,箱形图和条形图也不会使用相同的xticks.
df.boxplot(column='B', by='A')
plt.xticks()
(array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), <a list of 10 Text xticklabel objects>)
df.groupby('A').count()['B'].plot(kind='bar')
plt.xticks()
(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), <a list of 10 Text xticklabel objects>)
乍一看,它看起来像一个不一致之处,应该在matplotlib boxplot()中修复,但我可能只是忽略了基本原理.
作为一种解决方法,请使用matplotlib bar(),它允许您指定xticks以匹配boxplot的xticks(我没有找到使用df.plot(kind =’bar’)的方法.
df.boxplot(column='B', by='A')
plt.twinx()
plt.bar(left=plt.xticks()[0], height=df.groupby('A').count()['B'],
align='center', alpha=0.3)
内容总结
以上是互联网集市为您收集整理的如果两个Y轴成对缠绕,Python熊猫会绘制X轴偏移全部内容,希望文章能够帮你解决如果两个Y轴成对缠绕,Python熊猫会绘制X轴偏移所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。