精华内容
下载资源
问答
  • 如果您有多个子图包含二y(使用twinx创建),那么您如何在子图之间共享这些辅助...下面的示例显示了我的尝试,但是它无法共享两个子图的辅助y.我正在使用Matplotlib / Pylab:ax = []#create upper subplotax.appe...

    如果您有多个子图包含二次y轴(使用twinx创建),那么您如何在子图之间共享这些辅助y轴?我希望他们以自动的方式平等地平衡(所以以后不要用手来设置y限制).

    对于主y轴,这可以通过在子程序调用中使用关键字sharey来实现.

    下面的示例显示了我的尝试,但是它无法共享两个子图的辅助y轴.我正在使用Matplotlib / Pylab:

    ax = []

    #create upper subplot

    ax.append(subplot(211))

    plot(rand(1) * rand(10),'r')

    #create plot on secondary y-axis of upper subplot

    ax.append(ax[0].twinx())

    plot(10*rand(1) * rand(10),'b')

    #create lower subplot and share y-axis with primary y-axis of upper subplot

    ax.append(subplot(212, sharey = ax[0]))

    plot(3*rand(1) * rand(10),'g')

    #create plot on secondary y-axis of lower subplot

    ax.append(ax[2].twinx())

    #set twinxed axes as the current axes again,

    #but now attempt to share the secondary y-axis

    axes(ax[3], sharey = ax[1])

    plot(10*rand(1) * rand(10),'y')

    这让我有点像:

    我使用axes()函数设置共享y轴的原因是twinx不接受sharey关键字.

    我在Win7 x64上使用Python 3.2. Matplotlib版本是1.2.0rc2.

    展开全文
  • 当两个Y对应的数据差距很大,比如一个是总量,一个是占比,单纯设置两个y的splitNumber并不能起到将两个y分成同样份数的效果,因为我们设置的splitNumber只是一个建议的值,但实际绘制中echarts并

    产品里绘制了大量的图表,柱状图有单轴的也有双轴的,但是双轴的图如果使用echarts默认的绘制,发现两边的坐标并没有对齐,如果绘制辅助线,会发现grid区域有大量错开的辅助线,图形整体就很乱,产品不止一次让我想办法,为此多掉了好多头发,今天就来聊聊数学的重要性,没错是数学!

    1. 现象的产生

    当两个Y轴对应的数据差距很大,比如一个是总量,一个是占比,单纯设置两个y轴的splitNumber并不能起到将两个y轴分成同样份数的效果,因为我们设置的splitNumber只是一个建议的值,但实际绘制中echarts并不会完全按照splitNumber来分割y轴,而是根据对应的数据自己选择最美观的绘制区间,但这个区间是对应一组数据来说的,不会去配合另外的数据来使他们对齐。
    在这里插入图片描述

    1. 解决方法:上图是echarts官方示例中的一个,原图中给其两个y轴都设置了最大值Max,最小值Min,另外坐标轴还有个属性interval(每个刻度的长度),那么这三个属性就是脱坑的关键,下面上正菜:
    • 确定数据的max和min
      在实际开发中不可能写死最大值和最小值,因为实际数据的大小并不可控而且封装成组件时,这样写死也会造成组件的实用性降低,所以我们要根据实际获取到的数据来设置max和min, 那么就先要获取到数据的max和min
    calMax(arr) { // arr是传入的series
          const yAxisData = [[], []]  // 连个y轴,用两个数组将不同y轴对应数据分开
          const maxArr = [] // 用来缓存计算出来的所有Y轴的最大值
          arr.forEach(item => {
            if (item.yAxisIndex === 0) { // 根据数据对应的y轴的下标将数据分别缓存在yAxisData中
              yAxisData[0] = yAxisData[0].concat(item.data)
            }
            if (item.yAxisIndex === 1) {
              yAxisData[1] = yAxisData[1].concat(item.data)
            }
          })
          yAxisData.forEach((item, index) => {
            let max = Number(item[0])
            item.forEach((i, index) => {
              if (Number(i) && Number(i) > max) {
                max = Number(i)
              }
            })
            maxArr[index] = max
          })
          return maxArr
        },
    

    最小值参照上面,一样的操作

    • 确定我们期望绘制的max和min,用差值除以你需要的splitNumber来定义interval

    通过 以上一同操作获取到数据的最大值,下面就开始重头戏,设置我们期望绘制的max和min,这就用到了数学,直接上代码

    const max = this.calMax(this.baseOptions.series)
    const min = this.calMin(this.baseOptions.series)
    
    this.baseOptions.yAxis.forEach((item, index) => {
       if (options.yAxis[index] && !options.yAxis[index].max) {  // 做个截断这样最大值和最小值也可以是手动传入的,例如y轴是月份等固定的数,可以手动传入
    	   item.max = max[index]
    	   item.min = min[index]
    	   if (item.max > 0) {
    	      const maxDigit = Math.floor(Math.log(Math.abs(item.max)) / Math.log(10)) - 1  // 根据求最大值以10为底的对数计算最大值得位数(不用管是不是小数,都是可以实现的)
    	      // Math没有以10为底的对数求法,这里用了对数的换底公式
    	      // 减1是因为省略了一步,如果直接用位数继续下面的计算,求出来的最大值可能会比数据真实的最大值大太多,图形一般会集中分布在grid的下方
    	      // 减去一位再进行计算,计算所得的最大值一般会比数据的最大值低一位,这样图形整体就比较丰满,一般距离图表顶部一格左右
    	      const maxMultiple = Math.pow(10, maxDigit)
    	      // 用pow方法记录我们需要最终精确地位数
    	      tem.max = Math.ceil((Math.abs(item.max) * 1.2) / maxMultiple) * maxMultiple
    	      // 先将数据最大值放大1.2倍(根据自己的需要),在利用之前的记录的精度对齐向上取整,这样就能获取到你想要的数据(10, 100, 5000, 0.3, 0.005, ...)
    	   } else {
    	      item.max = 0
    	      // 这里如果最大值<= 0,我直接取0, 根据需求自己确定
    	   }
    	   if (item.min >= 0) {
    	       item.min = 0
    	   } else {
    	       const minDigit = Math.floor(Math.log(-item.min) / Math.log(10)) - 1
    	       const minMultiple = Math.pow(10, minDigit)
    	       tem.min = -Math.ceil((Math.abs(item.min) * 1.2) / minMultiple) * minMultiple
    	       // 这里只给最小值为负时设置的算法,因为为正时直接赋值为0,图形会更好
    	   }
    	   // 设置Interval,我这里所有的splitNumber都默认为5,也可以选择自己传入,一幅丰满且适用于多种多样是坐标系图就完成了
    	   item.interval = (item.max - item.min) / 5
    	}
    }
    

    以上方法基本你可以解决所有双轴问题,至少我们项目中现在很nice,夸一下自己,一开始我们选择了分层,根据最大值的范围,10, 100, 1000,…分出一个个的范围,最终觉得枚举就算列完了所有情况。但代码也不好维护,最终我只能默默的掏出了珍藏了7,8年的高中数学,终于完成了。

    最后,希望还在采坑的猿们可以试试,应该能够帮到你,有bug请留言,毕竟自己想出来的,不一定没有bug,谢谢

    展开全文
  • 如何用电脑画出一个公式的图表,如折线图用EXCEL 之类的软件就可以如何用电脑制作双纵轴折线图可以用EXCEL来做,要有两个系列及以上,点其中一个系列,右键,设置数据系列格式,坐标轴,次坐标轴,这样就有两个纵轴了如何用...

    如何用电脑画出一个公式的图表,如折线图以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    3337c9a16aee2761de6485d08e70ecf3.png

    如何用电脑画出一个公式的图表,如折线图

    用EXCEL 之类的软件就可以

    如何用电脑制作双纵轴折线图

    可以用EXCEL来做,要有两个系列及以上,点其中一个系列,右键,设置数据系列格式,坐标轴,次坐标轴,这样就有两个纵轴了

    如何用matplotlib画折线图

    两种常用图类型:Line and scatter plots(使用plot()命令), histogram(使用hist()命令)

    2.1 折线图&散点图 Line and scatter plots

    2.1.1 折线图 Line plots(关联一组x和y值的直线)

    import numpy as np

    import pylab as pl

    x = [1, 2, 3, 4, 5]# Make an array of x values

    y = [1, 4, 9, 16, 25]# Make an array of y values for each x value

    pl.plot(x, y)# use pylab to plot x and y

    pl.show()# show the plot on the screen

    图例 Figure legends

    pl.legend((plot1, plot2), (’label1, label2’), 'best’, numpoints=1)

    其中第三个参数表示图例放置的位置:'best’‘upper right’, ‘upper left’, ‘center’, ‘lower left’, ‘lower right’.

    如果在当前figure里plot的时候已经指定了label,如plt.plot(x,z,label=cos(x2)),直接调用plt.legend()就可以了哦。

    import numpy as np

    import pylab as pl

    x1 = [1, 2, 3, 4, 5]# Make x, y arrays for each graph

    y1 = [1, 4, 9, 16, 25]

    x2 = [1, 2, 4, 6, 8]

    y2 = [2, 4, 8, 12, 16]

    plot1 = pl.plot(x1, y1, ’r’)# use pylab to plot x and y : Give your plots names

    plot2 = pl.plot(x2, y2, ’go’)

    pl.title(’Plot of y vs. x’)# give plot a title

    pl.xlabel(’x axis’)# make axis labels

    pl.ylabel(’y axis’)

    pl.xlim(0.0, 9.0)# set axis limits

    pl.ylim(0.0, 30.)

    pl.legend([plot1, plot2], (’red line’, ’green circles’), ’best’, numpoints=1)# make legend

    pl.show()# show the plot on the screen

    如何用Highcharts制作一个折线图

    选中需要作图的区域,然后选择插入图表>组合图。

    项目一和项目二均选择折线图。其中一个选择次坐标轴。

    你想要的是这个效果吗?

    不是的话,你直接把表格放上来,我看一下,才能更清楚你的需求。

    如何用电脑画出图像

    先用别的软件做好,然后截屏。

    如何用R画折线图,散点图,平滑曲线图

    输入两列数据后,选定数据列,图表导向-》XY折线-》一步步到完成-》鼠标点图中的折线-》鼠标右键-》添加趋势线,然后选择合适的趋势,就可以得到光滑的曲线,而且还可以在用鼠标选定趋势线后,通过右键中的‘趋势线格式’让显示‘公式’、‘R平方’等。

    excel中如何用控件选择折线图

    折线图选择不了一部分曲线。虽然可以选择前后两个数据点看出数据趋势,但也生成不了回归方程。

    试用把前后两部分数据错开不同列(或行),生成图表后再做回归看看(没试过,建议而已)。

    答题不易,互相理解,您的采纳是我前进的动力,

    如果我的回答没能帮助您,请继续追问。

    IIS+mysql +php 如何使用Jgraph画出折线图?

    下载一个PHP压缩包,安装版的是比较麻烦。把所有解压目录下的*.dll文件和ext/下的*.dll文件复制到WINDOWS/system32/下;还有解压目录下的PHP.ini、*.exe文件复制到WINDOWS/目录下。记得配置MySQL直接下载一个msi的安装文件安装就可以了

    如何画Flot折线图

    绘图用到的档案 制综合图(折线和柱形图)时,所有需要的档案清单如下. 建立数据 这个范例用了气象数据当数据,有温度、风速及大气压力.一开始我们先建立3个数组变量分别代表为温度、风速及大气压力,接着再插入数据,x轴我们用的是时间格式数据,我们...

    如何用MATLAB画如下公式的图

    方法/步骤 输入自变量: 画已知的函数图形,用向量的方式表示自变量比较方便。代码为 x=linspace(0,8); % 用向量形式创建x。 输入因变量表达式: y1=sin(x); % 向量y1的值为x坐标上某一x的s i n ( 2 x )值。 y2=(sin(x)).^2 ; % 向量y2的值为( s...

    分页:123

    展开全文
  • 如何将同一个数据表中的不同数据列排列成上下两层柱形图?案例:将下图 1 的数据表制作成柱形图,要求将销量和利润的柱形分成两个图表上下排列。效果如下图 2 所示。解决方案:1.... 选择“次坐标轴”3....

    如何将同一个数据表中的不同数据列排列成上下两层柱形图?

    案例:

    将下图 1 的数据表制作成柱形图,要求将销量和利润的柱形分成两个图表上下排列。效果如下图 2 所示。

    267a3d4f6e10c324a762c2a8b575340b.png
    426761320c0d249d88e52a5174236e64.png

    解决方案:

    1. 选中整个数据表区域 --> 选择菜单栏的“插入”-->“二维柱形图”-->“簇状柱形图”

    e028c9c6cd20a101de14e39c8fd9bbe1.png
    2f5c4ac31583c3877be40c38c1aff0f9.png

    2. 双击橙色的柱形 --> 在右侧的“设置数据系列格式”区域选择“系列选项”--> 选择“次坐标轴”

    a32b965b22077530063245833b0ee1ad.png
    2bf3987fca25a7025d07b7e3f6dfc5ff.png

    3. 选中图表上的次坐标轴 --> 在右侧的“设置坐标轴格式”区域选择“坐标轴选项”--> 将坐标轴的最小值设置为“-4000”

    9483db251d6a7ec76992de6af9d956ce.png
    64441ca30e055eae22470d9e48d3a44d.png

    4. 选中图表上的主坐标轴,用同样的方式将坐标轴的最大值设置为“100”

    * 主坐标轴的最大值设置,需要根据数据的大小来调整,原则是使得下方的柱形图与上方适当空开一些距离,不重叠。

    0789b36e34b1f5b0bd60d56a1db40915.png
    d6087dfd9a4fec4b4ec5908e0f98a5d6.png

    5. 将上下层柱形的填充色分别修改成所需的颜色,删除网格线。

    4932de9d25c39bb4ea07ee8ef057fe84.png

    6. 选中上方的柱形 --> 点击图标右上角的“+”--> 勾选“数据标签”

    69ebf491fe2559c48deaaa2cee794e49.png

    7. 用同样的方法给下方的柱形也添加数据标签。

    d87f3a6667b32f648657c4bd0a47df99.png

    8. 添加标题。

    652626215a22e00e2aa079a10f3f3eaf.png

    9. 选中次坐标轴 --> 在右侧的“设置坐标轴格式”区域选择“文本选项”-->“文本填充与轮廓”--> 选择“无填充”

    56dddd2b096928d5f3877b6ae446edb2.png

    10. 用同样的方法取消主坐标轴的文本填充。

    e0630e529f27f3ad7f2a106c56cad54c.png

    本来悬殊很大的两组数据就分别排列在上下两层,能够清晰展示了。

    426761320c0d249d88e52a5174236e64.png

    很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

    现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

    展开全文
  • // 设置隐藏右边的坐标轴 mChart.getAxisRight().setEnabled(false); // 设置相对于x,y的放大倍率 // mChart.getViewPortHandler().setMaximumScaleY(20f); // mChart.getViewPortHandler()....
  • 在工作中有时候需要将两个图表进行结合,经常使用的是柱状图和折线图的结合。今天就让小编带大家一起来...增长率改为折线图,勾选次坐标轴,界面如下:4 单击左侧的坐标轴,右键——设置坐标轴格式,设置最大值为3...
  • 在工作中有时候需要将两个图表进行结合,经常使用的是柱状图和折线图的结合。今天就让小编带大家一起来...增长率改为折线图,勾选次坐标轴,界面如下:4 单击左侧的坐标轴,右键——设置坐标轴格式,设置最大值为3...
  • ZedGraph控件属性及基础教程详解(2003)

    热门讨论 2010-06-08 15:00:32
    IsTicsBetweenLabels 两个坐标值之间是否自动显示分隔标志 IsUseTenPower 是否使用10幂指数 IsVisible 是否显示X IsZeroLine 当数据为0时候是否显示(在饼状图显示的时候有用) MajorGrid 大跨度的X表格...
  • 通过详细讲解密码登录框和科学计算器这两个实例,使读者深入、熟练地掌握采用MATAB GUI进行工程项目设计的精髓。每个实例都有详细的构思和源程序,源程序包含详细的注释说明。通过本章的练习,读者可以独立完成复杂...
  • C++MFC教程

    热门讨论 2013-05-21 13:37:15
    CPoint:用来表示一个点的坐标,有两个成员变量:x y。 可以和另一个点相加。 CString:用来表示可变长度的字符串。使用CString可不指明内存大小,CString会根据需要自行分配。下面介绍几个成员函数: GetLength ...
  • 采集数据端口,支持串口端口+网络端口,串口支持自由设置串口号+波特率,网络支持自由设置IP地址+通讯端口,每端口支持采集周期,默认1秒钟一地址,支持设置通讯超时次数,默认3,支持最大重连时间,用于重新...
  • • 使用次坐标轴 • 图表上的文本框 • 图表的组合 • Microsoft Graph图表 • 图表转为图片 • 设置自动筛选 • 添加辅助行 • 定义名称 • 数据透视图 • 使用Excel VBA • 添加水平线 • 添加垂直线 • 复合饼图 ...
  • GSP5.exe

    2020-04-01 09:16:40
    ①在“图表”菜单中利用“建立坐标轴”命令建立坐标系; ②在横轴上任取一点,“度量”出它的“坐标”,“计算”出它的横坐标; ③先选中该点的横坐标,利用“计算”命令输入解析式2/X ,计算出它对应的纵坐标; ④...
  • Nehe的OpenGL教程电子书

    2018-04-07 12:25:03
    我想教给你两个新的方法来过滤(filter)你的纹理,简单的光照,键盘控制并且还可能更多 :) .如果你对到这一课为止你所学的东西并不充满信心,那就回头复习一下。玩一下其它课程的代码,不要操之过急。最好专心把每一...
  • css入门笔记

    2018-05-15 14:58:57
    独立于任何网页位置处,声明一样式文件(.css为后缀),在文件中声明样式,在使用的网页中引入.css文件。 使用步骤: 1.创建样式表文件(.css) 2.在样式文件中编写样式规则 3.在网页中对样式文件进行引入 <...
  • OPenGL编程书籍

    2013-07-22 16:38:01
    我想教给你两个新的方法来过滤(filter)你的纹理,简单的光照,键盘控制并且还可能更多 :) .如果你对到这一课为止你所学的东西并不充满信心,那就回头复习一下。玩一下其它课程的代码,不要操之过急。最好专心把每一...
  • 我想教给你两个新的方法来过滤(filter)你的纹理,简单的光照,键盘控制并且还可能更多 :) .如果你对到这一课为止你所学的东西并不充满信心,那就回头复习一下。玩一下其它课程的代码,不要操之过急。最好专心把每一...
  • 常见问题:很多人在使用以上方法后,经常出现的问题是代码没有任何错误,程序可以运行,就是出来的图形只有一坐标轴,看不到图形。 问题分析:出现这种问题的原因是图形的显示区域没设对。比如,我们上述三种...
  • 这一点精妙尽管只是ggplot2系统的很小一部分,但我个人认为没有任何程序语言可比拟,它对作为泛型函数的加号的扩展只能用两个字形容:绝了。, 至2013年2月26日,ggplot2的邮件列表...
  • flash shiti

    2014-03-14 10:32:41
    10. 某电影中,只有一个layer1,其上放置一个有两个元件(test1 和test2)组合成的组合体, 选择这个组合体执行打散Ctrl+B,然后右键单击执行Distribute to layers,那末: □ A. 这个电影中将增加两个新层:layer2 ...
  • PowerPoint.2007宝典 8/10

    2012-04-01 18:39:23
    共 170MB,分为 10 分卷 PowerPoint 2007宝典(附光盘1片) 作者:(美国)Faithe Wempen 译者:田玉敏 出版社:人民邮电出版社 ISBN:9787115170392 页码:547 页 版次:第1版 装帧:平装 开本:16 出版日:2008年02月 中文: ...
  • PowerPoint.2007宝典 10/10

    2012-04-01 18:45:00
    共 170MB,分为 10 分卷 PowerPoint 2007宝典(附光盘1片) 作者:(美国)Faithe Wempen 译者:田玉敏 出版社:人民邮电出版社 ISBN:9787115170392 页码:547 页 版次:第1版 装帧:平装 开本:16 出版日:2008年02月 中文: ...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

如何设置两个次坐标轴