精华内容
下载资源
问答
  • Matplotlib 绘制 双轴

    2021-09-27 15:20:37
    Matplotlib 绘制双轴图创作背景思路分析总结结尾 创作背景 最近本菜鸡想要画一个 双轴图 ,可是直接使用 plt.plot() 实现不了这个功能,无奈,菜嘛,所以只能去 Matplotlib Gallery 寻找一波。 诶,你别说,还真被我...

    Matplotlib 绘制 双轴 图

    创作背景

    最近本菜鸡想要画一个 双轴图 ,可是直接使用 plt.plot() 实现不了这个功能,无奈,菜嘛,所以只能去 Matplotlib Gallery 寻找一波。
    诶,你别说,还真被我给找到了。

    分析思路

    我找到的是 这个例子
    诶,你看,这个图画的多好看,而且还符合我们的需求 — 双轴图 ,这个图还把两个轴用不同的颜色区分了一下,妙哉妙哉。
    在这里插入图片描述
    那让我们阅读一下它的源码,看看哪里可以供我们借鉴。

    1. 首先就是平常的不能再平常的 导包 ,导入了 MatplotlibNumpy 两个第三方库,其中 Matplotlib 用来绘图,Numpy 用来生成绘图的数据。

      import numpy as np
      import matplotlib.pyplot as plt
      

      没了这一步,下边的函数啥的都执行不了。

    2. 然后就是 生成绘图数据

      t = np.arange(0.01, 10.0, 0.01)
      data1 = np.exp(t)
      data2 = np.sin(2 * np.pi * t)
      

      一个是公式 y = e t y={e}^{t} y=et ,一个是公式 y = s i n ( 2 π t ) y=sin(2 \pi t) y=sin(2πt)
      区间均为 t ∈ [ 0.01 , 10 ] t \in [0.01, 10] t[0.01,10] ,且以 0.01 作为 间距

    3. 下一步是 设置主轴 ,并且 绘制 y = e t y={e}^{t} y=et 的图像,还要把轴和曲线设置为 红色 ,有点小秀。

      fig, ax1 = plt.subplots()
      
      color = 'tab:red'
      ax1.set_xlabel('time (s)')
      ax1.set_ylabel('exp', color=color)
      ax1.plot(t, data1, color=color)
      ax1.tick_params(axis='y', labelcolor=color)
      

      其中:

      • ax1 即为主轴,用主轴绘图,画出来的图像的 y 轴就是 左边的轴
      • set_xlabel 就是 设置 x 轴的标签 ,of course,set_ylabel 就是 设置 y 的标签 ,当然咯,是 左边的轴 的标签哦。
      • plot 就不用多说了,就是画 折线图 嘛,我相信 xdm 应该都是知道的。
      • tick_params 在这里的作用是 设置 y 轴的颜色 ,加了这个才能显示 左边的轴是红色的
    4. What’s more,当然是压轴的一步,设置次轴 ,也就是 右边的轴 ,并且绘制曲线。

      ax2 = ax1.twinx()
      
      color = 'tab:blue'
      ax2.set_ylabel('sin', color=color)
      ax2.plot(t, data2, color=color)
      ax2.tick_params(axis='y', labelcolor=color)
      

      其中

      1. ax2 = ax1.twinx() 是最为重要的一步,也是实现双轴图最为核心的一步,让我们看一下官方文档
        在这里插入图片描述 创建并返回 共享 x 轴的第二个轴 ,刻度在 右侧 。这不正是我们的需求吗?
        可能会有小伙伴问为什么是共享 x 轴 而不是共享 y 轴 呢?这个问题的话,这里建议先学一学 数学数学文化,博大精深
        这一步我们就得到了 次轴 ax2 也就是 右边的轴
      2. 然后我们就可以使用这个轴绘制第二条曲线,下边的代码可以参考 ax1 的解析。
    5. 最后,就是 绘制图像 咯。

      fig.tight_layout()
      plt.show()
      

      其中,fig.tight_layout() 是用来 自动调整子图的参数 ,因为可能由于各种原因,图片显示的不全,所以要调用这个函数调整一下。

    总结

    总结一下,要绘制 双轴图 的核心是 ax2 = ax1.twinx() ,用这个函数 共享 x 轴 ,以达到绘制两个不同的坐标轴的目的。




    结尾

    以上就是我要分享的内容,因为学识尚浅,会有不足,还请各位大佬指正。
    有什么问题也可在评论区留言。
    在这里插入图片描述

    展开全文
  • 本文实例讲述了jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果。分享给大家供大家参考,具体如下: 1、实例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <...
  • 本文实例讲述了jQuery插件Echarts实现的双轴图效果。分享给大家供大家参考,具体如下: 1、问题描述: 利用Echarts制作一个折线图,条件是:三条折线,一条代表可利用率,另外两条代表数量。 2、实现源码: <!...
  • Echarts-双轴图

    2019-02-15 15:18:59
    Echarts-双轴图
                   

    1、问题描述

         利用Echarts制作一个折线图,条件是:三条折线,一条代表可利用率,另外两条代表数量。


    2、实现源码

    <!DOCTYPE html><html> <head>  <meta charset="UTF-8">  <title>Echarts-双轴图</title>  <link rel="shortcut icon" href="../js/echarts-2.2.7/doc/asset/ico/favicon.png">  <script type="text/javascript" src="../js/echarts-2.2.7/doc/asset/js/jquery.min.js" ></script>  <script type="text/javascript" src="../js/echarts-2.2.7/doc/example/www2/js/echarts-all.js" ></script>  <style>   body,html{    width: 99%;    height: 99%;    font-family: "微软雅黑";    font-size: 12px;   }   #double{    width: 100%;    height: 100%;    font-family: "agency fb";    font-weight: bolder;   }  </style>  <script>   $(function(){    var chart = document.getElementById('double');                  var echart = echarts.init(chart);                                    var option = {        title : {            text: '可利用率',            subtext: '',            x: 'center',            align: 'right'        },        grid: {            bottom: 80        },        tooltip : {            trigger: 'axis',            axisPointer: {                animation: false            },            formatter: function (params) {                var res = params[0].name;                for (var i = 0, l = params.length; i < l; i++)                 {                 if(i==0)                 {                  res += '<br/>' + params[i].seriesName + ' : ' + params[i].value + "%";                 }                 else                 {                  res += '<br/>' + params[i].seriesName + ' : ' + params[i].value;                 }                }                                return res;            }        },        legend: {            data:['可利用率','A','B'],            x: 'left'        },        xAxis : [            {                type : 'category',                axisLabel: {        rotate: 45       },                boundaryGap : false,                axisLine: {onZero: false},                data : ['2016年1月', '2016年2月', '2016年3月', '2016年4月', '2016年5月','2016年6月','2016年7月','2016年8月','2016年9月','2016年10月','2016年11月','2016年12月'].map(function (str) {                    return str.replace(' ', '\n')                })            }        ],        yAxis: [            {                name: '可利用率',                type: 'value',                max: 100,                axisLabel: {                     show: true,                     interval: 'auto',                     formatter: '{value} %'                   }            },            {                name: 'A',                nameLocation: 'start',                type: 'value',                inverse: true            },            {                name: 'B',                nameLocation: 'start',                type: 'value',                inverse: true            }        ],        series: [            {                name:'可利用率',                type:'line',                hoverAnimation: false,                itemStyle: {                 normal: {                  label : {                   show:false,                   position:'top',                   formatter:'{c} %'                  }                 }                },                areaStyle: {                    normal: {}                },                lineStyle: {                    normal: {                        width: 1                    }                },                data:[12,78,34,67,88,45,65,77,31,21,90,54]            },            {                name:'A',                type:'line',                yAxisIndex:1,                hoverAnimation: false,                areaStyle: {                    normal: {}                },                lineStyle: {                    normal: {                        width: 1                    }                },                data: [1,4,5,8,3,2,7,6,9,2,4,3]            },            {                name:'B',                type:'line',                yAxisIndex:1,                hoverAnimation: false,                areaStyle: {                    normal: {}                },                lineStyle: {                    normal: {                        width: 1                    }                },                data: [0,2,3,7,1,0,5,2,6,1,2,1]            }        ]    };                                  echart.setOption(option);     });  </script> </head> <body>  <div id="double"></div> </body></html>
    
     


    3、实现结果




               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 一个分析师小伙伴跟我抱怨,老板是从Linkedin美国总部回来的,明令禁止团队使用双轴图,可怎么办呀... 双轴图作为一种常用的图表类型,确实在行业里争议不少。那么到底能不能使用双轴图呢? 双轴图的问题 双轴...

    一个分析师小伙伴跟我抱怨,老板是从Linkedin美国总部回来的,明令禁止团队使用双轴图,可怎么办呀...

    双轴图作为一种常用的图表类型,确实在行业里争议不少。那么到底能不能使用双轴图呢?

     

    双轴图的问题

    双轴图被人诟病并不算冤枉,比如看下面左边的这张图,乍一眼看上去,是不是觉得女装的销售量和男装差不多嘛。

    但其实是因为数据轴量级的不同,右边的图才是真实的情况,和女装相比,男装数据少的不值一提。

    双轴图经常被误使用,当两个数据量级差异太大的时候,双轴图总是会被第一时间想起,但其实这种场景下不建议使用双轴图,因为有可能给人带来的误解实在太大了,而如果图表的浏览者基于这样错误的印象做了决策,带来的损失可能很严重呢。

    如果这两组数据一定要放在一起看,还是建议分成2个线图,或者使用表格等方式展示。

     

    那什么时候可以使用双轴图呢?

    对于要同时查看一个数值和百分比的时间趋势,双轴图就派上大用场了。

    比如要查看每天成交金额及其同比上周的变化率,比如要查看每天访问用户量及留存率,双轴图都非常适合。

    为了浏览起来更直观,建议用柱图来表示数值类数据,用线图来表示百分比。    

     

     

    Quick BI 的双轴图

    这里推荐一下我在用的Quick BI的双轴图,这里面的图表支持非常灵活的配置。

     

    第一步:在图表类型中选择组合图

    第二步配置度量、维度,

    • 将“成交金额”拖入主值轴/度量
    • 再拖入“成交金额”至副值轴/度量,修改为周同比,将显示方式修改为“线型”
    • 将时间字段拖入类别轴/维度

    第三步,点击更新,就完成配置了


     

    作者:常成

     

    展开全文
  • 话对比,如果两个数量级的纵坐标,我们要进行趋势比较,放在同一坐标轴,某一个往往被压缩的的很小。所以需要左右双Y轴画图。 1.随便获取数列,对应的索引化成一样就可以了,下面是量化的数据处理,可以不用看,...

    话对比图,如果两个数量级的纵坐标,我们要进行趋势比较,放在同一坐标轴,某一个往往被压缩的的很小。所以需要左右双Y轴画图。

    1.随便获取数列,对应的索引化成一样就可以了,下面是量化的数据处理,可以不用看,只要能化成这里的输出类型就可以了。

    # coding=utf-8
    import math
    import tushare as ts
    import pandas as pd
    import matplotlib
    import matplotlib.pyplot as plt
    import numpy as np
    import talib
    import pandas as pd
    from datetime import datetime, date
    matplotlib.rcParams['axes.unicode_minus']=False
    plt.rcParams['font.sans-serif']=['SimHei']
    ts.set_token('19fbtoken码.e0')#需要注册tushar pro 获取token码  [获取地址](#https://tushare.pro/register?reg=385920) 
    pro = ts.pro_api()
    #读取数据
    star='2010Q1'
    end='2020Q1'
    start_cpi='200601'
    end_cpi='202003'
    start_time='20060301'
    end_time="20200531"
    dcc= pro.cn_cpi(start_m=start_cpi, end_m=end_cpi)#,fields='nt_yoy')
    df1 = pro.cn_gdp(start_q=star, end_q=end)
    dsc1 = pro.index_daily(ts_code='000300.SH', start_date=start_time, end_date=end_time,fields='ts_code,trade_date,close')
    dsp = pro.index_daily(ts_code='NHCI.NH', start_date=start_time, end_date=end_time,fields='ts_code,trade_date,close')
    dsb = pro.index_daily(ts_code='000012.SH', start_date=start_time, end_date=end_time,fields='ts_code,trade_date,close')
    def mon_fun(dsb):
        dsb.index = pd.to_datetime(dsb.trade_date,format="%Y-%m")#转换成datetime类型的
        dsbb=dsb.resample("M").mean()
        return dsbb
    dsbb=mon_fun(dsb)
    dscc1=mon_fun(dsc1)
    dspp=mon_fun(dsp)
    dsbb.rename(columns={"close":"close_b"},inplace=True)
    dscc1.rename(columns={"close":"close_c"},inplace=True)
    dspp.rename(columns={'close':'close_p'},inplace=True)
    dcc.index=pd.to_datetime(dsbb.index,format="%Y-%m")
    

    输出同索引的DataFrame

    在这里插入图片描述
    2.设置图的尺寸、还有画上证国债指数和CPI同比变化的对比图(主图)

    fig = plt.figure(figsize=(10,6))
    ax1 = fig.add_subplot(111)
    ax1.plot(dscc1.close_c,)
    ax1.set_ylabel('上债综合指数闭盘价',fontdict={'weight': 'normal', 'size': 15})
    ax1.set_title("上债综合指数与CPI同比变化对比图",fontdict={'weight': 'normal', 'size': 15})
    
    

    3.画子图

    ax2 = ax1.twinx()  # this is the important function
    ax2.plot( dcc.nt_yoy , 'r')
    ax2.set_ylabel('CPI全国同比',fontdict={'weight': 'normal', 'size': 15})
    ax2.set_xlabel('Same')
    plt.show()
    

    4.效果
    在这里插入图片描述

    5.在比如画南华商品指数与CPI的变化对比,只需改动坐标ax1

    ################数据x坐标轴需要两个相同。共享的X轴###################
    fig = plt.figure(figsize=(10,6))
    ax1 = fig.add_subplot(111)
    ax1.plot(dspp.close_p,)
    ax1.set_ylabel('南华指数闭盘价',fontdict={'weight': 'normal', 'size': 15})
    ax1.set_title("南华指数与CPI同比变化对比图",fontdict={'weight': 'normal', 'size': 15})
    
    ax2 = ax1.twinx()  # this is the important function
    ax2.plot( dcc.nt_yoy , 'r')
    ax2.set_ylabel('CPI全国同比',fontdict={'weight': 'normal', 'size': 15})
    ax2.set_xlabel('Same')
    #参数rotation设置坐标旋转角度,参数fontdict设置字体和字体大小
    #ax1.set_xticklabels(rotation=90,fontdict={'weight': 'normal', 'size': 15})
    plt.show()
    

    5.结果
    在这里插入图片描述

    其他量化策略代码,获取token 后可以直接用
    1.python量化——alpha股票-指数期货对冲策略
    2.多因子选股策略
    3.海龟交易策略
    4.移动平均策略——单/双均线策略
    5.改进的美林时钟策略(一)
    5.改进的美林时钟策略(二)
    6.改进的美林时钟策略(三)

    展开全文
  • 数据可视化_科学统计图表4——ggplot绘制双轴图 什么是双轴图 双轴图是将两个不同量级的数据放在同一图像中显示的方法。如果不使用双轴图而直接将两组量级不同的数据放到同一图像中,就会造成一组低量级数据的极致...
  • 从零开始学matplotlib画图(六): 双轴图

    千次阅读 2018-10-22 20:09:24
    如果想要简单地实现这样的需求,我们完全可以将两个指标在两张中展示。 然而我们常常需要将两个极为相关或者同样重要的指标放在一起来观察,比如说,有一家内容类公司,需要观察过去一年产品日活以及内容整体点击...
  • MATLAB Graph 双轴图

    千次阅读 2019-05-19 13:52:18
    n=1:10; I=[0.57 1.89 3.82 6.73 3.74 15.16 21.32 27.47 15.91 3.38]; P0=[9000 12500 12500 16500 14000 28000 33500 57500 50000 32500]; plotyy(n,I,n,P0); [AX,H1,H2] =plotyy(n,I,n,P0,@plot);...
  • 7-2 混合图形与双轴图

    2021-09-03 21:13:42
    # 使用seaborn生成叠加 ax1 = sns.kdeplot(ccss.s3) sns.histplot(data = ccss, x = 's3', stat = 'density', ax = ax1) # 混合使用seaborn和matplotlib生成叠加 ax1 = sns.kdeplot(ccss.s3) ax1.hist(ccss.s
  • Echarts双轴图的配置.

    2016-11-08 11:11:00
    在series中的数据组加个属性,yAxisIndex: 1,表示第二个数据用的是第二个y轴,不加这个属性的话都是默认0,即第一个属性,再配置yAxis的值第一个为左侧坐标轴,右册坐标轴为第二个配置参数的值. ...
  • HighCharts之2D柱状图、折线图的组合双轴图 1、实例源码 DoubleAxis.html: HighCharts 2D柱状图、折线图的组合双轴图 $(function(){ $('#doubleColumnLineChart').highcharts({ chart: { ...
  • 图表控件制作双轴图

    2015-04-13 11:18:50
    如图表中既存在柱形,又有折线或面积,且各图表类型的纵坐标轴可设置在左或右,实现混合图表。如下效果:,2.示例2.1准备数据新建工作薄,添加数据集,SQL语句为SELECT 产品名称, 库存量, 订购量, 再订购量 ...
  • vue中使用echarts实现双轴图 效果图 echarts自适应方法 安装插件 npm install element-resize-detector 公共方法 drawLine(id, option) { const erd = elementResizeDetectorMaker(); let myChart = echarts....
  • <div><p>如题, 使用<code>DualLine</code> 增加 <code>interactions配置不生效 <pre><code> interactions: [ { type: 'slider', }, ...</code></pre>该提问来源于开源项目:...
  • 降雨径流双轴图

    2014-01-08 23:58:49
    Matlab降雨径流双Y轴,源于水文预报课程设计
  • matplotlib画双轴折线

    千次阅读 2020-06-03 16:37:32
    matplotlib画双轴折线 # -*- coding:utf-8 -*- ''' 以下程序修改文件路径可直接在导出的RTM报文上运行,无需在excel中进行预处理 import pandas as pd from pandas import DataFrame import matplotlib.pyplot as...
  • Tableau学习笔记 | 数据拆分、折线、双坐标、饼图和环形一、数据拆分二、折线和双坐标1、折线2、双坐标三、饼图和环...
  • 双轴图是数据分析工作中很常用的图表类型,其实双轴图=折线图+柱状图,想制作双轴图一点也不难!原来双轴图一键就可以在线生成,很简单,也很好看、直观!具体见文章哦~
  • vue echarts 双轴柱状

    2021-04-13 17:23:31
    echarts 双轴柱状
  • 我想使用双轴绘制图形(10000),请参见第 217 行 我想制作一个使用循环形成的图形的电影文件,该循环从第 161 行到第 189 行
  • Superstore-Data-Analysis:该项目基于Tableau Desktop工具构建。 #美国超级市场数据分析#计算字段#双轴图#计算参数#工作表#仪表板#故事
  • Tableau学习笔记 | 数据拆分、折线、双坐标、饼图和环形一、数据拆分二、折线和双坐标1、折线2、双坐标三、饼图和环形1、饼图2、环形 一、数据拆分 方法:在数据源中,点击每列数据类型标签后的...
  • Matlab画双轴折线

    千次阅读 2019-10-08 17:03:29
    Matlab画双轴折线 数据: 代码: clc close all clear all AA = xlsread('2.xlsx'); x = AA(:,1); y1 = AA(:,2); y2 = AA(:,3); hold on; [AX,H1,H2] =plotyy(x,y1,x,y2,@plot);% 获取坐标轴、图像句柄 set(get...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,321
精华内容 928
关键字:

双轴图