博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
共用y轴的双图形绘制
阅读量:6560 次
发布时间:2019-06-24

本文共 1641 字,大约阅读时间需要 5 分钟。

实现这种形式的图形,可通过matplotlib和pandas的实现,相比下pandas实现方便的多。

我数据分析的时候主要是stacked bar、bar和line形式的放在一张图上。

 

先上图吧

 

def plot_stacked_bar(left_data, right_data):    width = .3    axe = plt.subplot(111)    axe = left_data.plot(kind='bar', stacked=True, ax=axe, width=width, use_index=True, legend=False)    axe.set_xticklabels(left_data.index, rotation=0)    #add patches to the stacked bar    patterns = ('-', '+', 'x', '\\', '*', 'o', 'O', '.', '/')    bars = axe.patches    hatches = ''.join(h*len(left_data) for h in patterns)    for bar, hatch in zip(bars, hatches):        bar.set_hatch(hatch)        #plottint the line sharing the same x-axis on the secondary y-axis    axf = axe.twinx()    axf.plot(axe.get_xticks(), right_data, linestyle='-', marker='o', linewidth=2.0)    axf.set_ylim((0, 90))

另一种形式的图形:

 

from matplotlib import pyplot as pltimport pandas as pdfrom pandas import Seriesimport numpy as npn = 50x = pd.period_range('2001-01-01', periods=n, freq='M')y1 = (Series(np.random.randn(n)) + 5).tolist()y2 = (Series(np.random.randn(n))).tolist()df = pd.DataFrame({
'bar':y2, 'line':y1}, index=x)# let's plotplt.figure(figsize=(20, 4))ax1 = df['bar'].plot(kind='bar', label='bar')ax2 = ax1.twiny()df['line'].plot(kind='line', label='line', ax=ax2)ax2.grid(color="red", axis="x")def align_xaxis(ax2, ax1, x1, x2): "maps xlim of ax2 to x1 and x2 in ax1" (x1, _), (x2, _) = ax2.transData.inverted().transform(ax1.transData.transform([[x1, 0], [x2, 0]])) xs, xe = ax2.get_xlim() k, b = np.polyfit([x1, x2], [xs, xe], 1) ax2.set_xlim(xs*k+b, xe*k+b)align_xaxis(ax2, ax1, 0, n-1)

 

#参考#

 

转载于:https://www.cnblogs.com/nju2014/p/5049208.html

你可能感兴趣的文章
Linux 用户和用户组管理
查看>>
tomcat架构分析(valve源码导读)
查看>>
spring中InitializingBean接口使用理解(转)
查看>>
基于php5.5使用PHPMailer-5.2发送邮件
查看>>
InstallShield 2012 Spring新功能试用(16): Suite/Advanced UI 或 Advanced UI安装程序能在安装时进行输入合法性校验与反馈...
查看>>
C#面试宝典
查看>>
基金项目的英文
查看>>
《软件性能测试与LoadRunner实战教程》喜马拉雅有声图书上线
查看>>
ios 字典转模型
查看>>
正在编译转换: 未能找到元数据文件 EntityFramework.dll
查看>>
Java类集
查看>>
K-Means聚类算法的原理及实现【转】
查看>>
类的生命周期
查看>>
php apache用户写文件夹权限设置
查看>>
003-诠释 Java 工程师【一】
查看>>
浅析rune数据类型
查看>>
普通用户开启AUTOTRACE 功能
查看>>
1034 - Navigation
查看>>
Bind+Nginx实现负载均衡
查看>>
游侠原创:推荐一款免费的Syslog转发工具
查看>>