精华内容
下载资源
问答
  • R绘制组间差异柱状图

    2021-04-14 10:54:35
    柱状图也是差异可视化图形的一种,今天小编来分享一下组间差异柱状图在R语言中的绘制方法,主要用的是ggplot2包,这个包功能的确很强大。 数据文件大概长这样(有需要的小伙伴可进群获取): 那咱们就开始画吧。 1....

    柱状图也是差异可视化图形的一种,今天小编来分享一下组间差异柱状图在R语言中的绘制方法,主要用的是ggplot2包,这个包功能的确很强大。

    数据文件大概长这样(有需要的小伙伴可进群获取):
    在这里插入图片描述
    那咱们就开始画吧。

    1.读取数据,设置横坐标为细菌类群,纵坐标为相对丰度;

    library(ggplot2)
    
    #读取数据
    stat <- read.csv('stat.csv', stringsAsFactors = FALSE)
    
    #可以给细菌类群按丰度高低排个序
    stat$taxonomy<-factor(stat$taxonomy, levels = c('Alphaproteobacteria', 'Gammaproteobacteria', 'Acidobacteria',
                                                    'Actinobacteria', 'Betaproteobacteria', 'Bacteroidetes'))
    
    #将小数类型的相对丰度乘以 100 方便以百分比展示
    stat$mean <- stat$mean * 100
    stat$se <- stat$se * 100
    

    2.用ggplot2画出组间差异柱状图;

    #ggplot2 分组柱状图
    p <- ggplot(stat, aes(taxonomy, mean, fill = group)) +
      geom_col(position = position_dodge(width = 0.9), width = 0.7) +
      geom_errorbar(aes(ymin = mean - se, ymax = mean + se), width = 0.25, size = 0.3, position = position_dodge(0.9)) +
      scale_fill_manual(values = c("#3C5488B2","#00A087B2", "#F39B7FB2")) +
      labs(title = NULL, x = NULL, y = 'Relative abundance (%)', fill = NULL) +
      theme(panel.grid = element_blank(), panel.background = element_blank(), axis.line = element_line(colour = 'black'), legend.position = c(0.9, 0.85)) +
      theme(axis.text.x = element_text(size = 11, angle = 45, hjust = 1)) +
      scale_y_continuous(expand = c(0, 0), limit = c(0, 50))
    p
    #ggsave('p.pdf', p, width = 8, height = 5)
    

    在这里插入图片描述
    3.如果想添加abc显著性标记,可以先将显著性差异计算好,然后手动添加至柱状图中;

    #添加显著性标记 abc
    p1 <- p + geom_text(aes(label = sign1, y = mean + se + 3), position = position_dodge(0.9))
    p1
    #ggsave('p1.png', p1, width = 8, height = 5)
    

    在这里插入图片描述
    4.添加*显著性标记,同上,手动添加计算好的显著性差异;

    #添加显著性标记 *
    p2 <- p + geom_text(aes(label = sign2, y = mean + se + 6), size = 5)
    p2
    #ggsave('p2.png', p2, width = 8, height = 5)
    

    在这里插入图片描述
    需要作图数据的小伙伴可关注“作图帮”公众号或扫描下方二维码进群获取~
    在这里插入图片描述

    展开全文
  • Echats柱状图横向展现时,数据大小差异导致显示错位重叠的解决办法 如图所示 标红框的是数字重叠的部分,当数据远小于最大值时,数字就会错位,这样很不美观。 关于解决办法,本人看过官网上的一些例子,当把...

    Echats柱状图横向展现时,数据大小差异过大导致显示错位重叠的解决办法

    如图所示
    在这里插入图片描述
    标红框的是数字重叠的部分,当数据远小于最大值时,数字就会错位,这样很不美观。
    关于解决办法,本人看过官网上的一些例子,当把数据大小差异改成很大时,也会出现如图所示错位(所以我认为这可能是echats的一个小bug),没有办法向右移动,而且就算移动了也会重叠,因为位置太小
    所以和项目经理协调了下,需求改成了小于最大值的10%不显示,因为这没有动态的数据,我就只展现一下如何不显示数字吧
    代码如下:

     formatter: function(params) {
                                            if (params.value < Math.ceil(数字(可放入变量))) {
                                                return '';
                                            } else {
                                                return params.value;
                                            }
                                        }
    

    在这里插入图片描述
    这样就没有重叠了,鼠标放上去的时候还是会显示

    展开全文
  • 背景:最近做了一个多维的柱状图,数据差值过,导致最小值无法选中,用户希望优化一下。 用户诉求1:单个柱子 悬浮显示tooltip,不要整体悬浮 解决:设置tooltip: { trigger: 'item'},设置成item,则根据图形...

    背景:最近做了一个多维的柱状图,数据差值过大,导致最小值无法选中,用户希望优化一下。

    用户诉求1:单个柱子 悬浮显示tooltip,不要整体悬浮

    解决:设置tooltip: {   trigger: 'item'},设置成item,则根据图形触发,但axisPointer不生效,即无法实现悬浮有阴影的效果

    用户诉求2:最后那个数据太小,悬浮和点击时很难选中,要求做到点击空白区域

    解决:查询资料后发现myChart.getZr().on('click',function (params) {})可以设置空白区域,但无法获取具体点击的维度信息,仅限于单维可用。经过思考,用户的痛点在于数据太小无法选中,那么我只需要把最小值设置为可轻易选中的状态就解决了。因此想到了yAxis. type = 'log'用对数坐标来展示

    即设置yAxis:  {  type: 'log'},并在series每个中添加barMinHeight: 10,

    问题出现了,数据差别很大的值却很相近高度,且Y轴的初始值为1而非0

    (1)Y轴初始值问题,设置label自定义

    axisLabel: {
      formatter: (params) => {
        return params === 1 ? 0 : params;
      },
    },

    (2)数据相差很大高度相同,设置对数的基数    min:1, logBase:3,这个基数是可以随时调整的。

    完整代码:

    option = {
        color: ['#003366', '#006699', '#4cabce', '#e5323e'],
        tooltip: {
            trigger: 'item',
            axisPointer: {
                type: 'shadow'
            }
        },
        legend: {
            data: ['Forest', 'Steppe', 'Desert', 'Wetland']
        },
     
        xAxis: [
            {
                type: 'category',
                axisTick: {show: false},
                data: ['2012', '2013', '2014', '2015', '2016']
            }
        ],
        yAxis: [
            {
                type: 'log',
                min:1,
                logBase:3,
                axisLabel: {
                  formatter: (params) => {
                    return params === 1 ? 0 : params;
                  },
                },
            }
        ],
        series: [
            {
                name: 'Forest',
                type: 'bar',
                barMinHeight: 10,
                data: [130, 186, 39, 32, 90]
            },
            {
                name: 'Steppe',
                type: 'bar',
                barMinHeight: 10,
                data: [2, 40, 17, 15, 4]
            },
            {
                name: 'Desert',
                type: 'bar',
                barMinHeight: 10,
                data: [4, 4, 15, 12, 8]
            },
            {
                name: 'Wetland',
                type: 'bar',
                barMinHeight: 10,
                data: [1, 2, 3, 4, 5]
            }
        ]
    };

    总结:分析问题,找到问题症结,多查看文档,echarts功能来说还是很全面的。当Y轴为value时,是按所有取值来展示,导致数据太小的会占比很小,呈现上疏下密;当Y轴是log时,会呈现对数增长的效果,会呈现上密下疏的效果,主要看客户的需求侧重点。

    展开全文
  • 柱状图&条形图

    2019-07-10 15:00:51
    柱状图/条形图(Bar) 柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小。 展示多个分类的数据变化和同类别各变量之间的比较情况。 适用:对比分类数据。 局限:分类过多则无法展示数据特点。 相似图表: ...

    柱状图/条形图(Bar)

    柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小。

    展示多个分类的数据变化和同类别各变量之间的比较情况。

    • 适用:对比分类数据。
    • 局限:分类过多则无法展示数据特点。
    • 相似图表:
      1. 堆积柱状图。比较同类别各变量和不同类别变量总和差异。
      2. 百分比堆积柱状图。适合展示同类别的每个变量的比例。
    # 导入柱状图类
    from pyecharts import Bar
    
    attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    v1 = [23.0, 44.9, 57.0, 23.2, 25.6, 46.7, 35.6, 62.2, 32.6, 20.0, 36.4, 3.3]
    
    bar = Bar("Sales of XPS in 2017(million $)")
    bar.add("XPS", attr, v1)
    bar
    
    <div id="b43aec201a5a4a4986a28f23927294ec" style="width:800px;height:400px;"></div>
    
    # 导入柱状图类
    from pyecharts import Bar
    
    attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    v1 = [23.0, 44.9, 57.0, 23.2, 25.6, 46.7, 35.6, 62.2, 32.6, 20.0, 36.4, 33.3]
    v2 = [22.6, 45.9, 59.0, 26.4, 28.7, 50.7, 75.6, 82.2, 48.7, 18.8, 36.0, 2.3]
    
    bar = Bar("Bar chart", "Sales of XPS and Alienware in 2017(million $)")
    bar.add("XPS", attr, v1, mark_line=["average"], mark_point=["max", "min"])
    bar.add("Alienware", attr, v2, mark_line=["average"], mark_point=["max", "min"])
    bar.render(path='Bar charts - Sales of XPS and Alienware in 2017(million $).html')
    bar
    
    <div id="6eb2a90ed5cb440ab61357311127095e" style="width:800px;height:400px;"></div>
    

    add(name, x_axis, y_axis,
    is_stack=False,
    bar_category_gap=‘20%’, **kwargs)

    name -> str
    图例名称
    x_axis -> list
    x 坐标轴数据
    y_axis -> list
    y 坐标轴数据
    is_stack -> bool
    数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置
    bar_category_gap -> int/str
    类目轴的柱状距离,当设置为 0 时柱状是紧挨着(直方图类型),默认为 ‘20%’

    # 导入柱状图类
    from pyecharts import Bar
    
    attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    v1 = [23.0, 44.9, 57.0, 23.2, 25.6, 46.7, 35.6, 62.2, 32.6, 20.0, 36.4, 3.3]
    v2 = [22.6, 45.9, 59.0, 26.4, 28.7, 50.7, 75.6, 82.2, 48.7, 18.8, 36.0, 2.3]
    
    bar = Bar("Bar chart", "Sales of XPS and Alienware in 2017(million $)")
    bar.add("XPS", attr, v1, mark_line=["average"], is_stack=True)
    bar.add("Alienware", attr, v2, mark_line=["average"], is_stack=True)
    bar.render(path='Bar charts - Sales of XPS and Alienware in 2017(million $).html')
    bar
    
    <div id="e72e9c19bd2d4fd59712a22a5804618f" style="width:800px;height:400px;"></div>
    

    当我们类目名称比较长的时候,我们会做条形图

    bar = Bar("x 轴和 y 轴交换")
    bar.add("商家A", attr, v1)
    bar.add("商家B", attr, v2, is_convert=True)
    bar
    
    <div id="9f1f877345da42f08943075420052ae0" style="width:800px;height:400px;"></div>
    
    import random
    
    attr = ["{}天".format(i) for i in range(30)]
    v1 = [random.randint(1, 30) for _ in range(30)]
    bar = Bar("Bar - datazoom - slider 示例", width=1000)
    bar.add("", attr, v1, is_label_show=True, is_datazoom_show=True)
    bar
    
    <div id="25007f870ee0456e9bf36950aabd1c06" style="width:1000px;height:400px;"></div>
    

    瀑布图

    • 适用场景:采用绝对值与相对值结合的方式,适用于表达数个特定数值之间的数量变化关系,最终展示一个累计值。
    • 优势:展示两个数据点之间的演变过程,还可以展示数据是如何累计的。
    • 劣势:没有柱状图、条形图的使用场景多。
    from pyecharts import Bar
    
    attr = ['IOS','Mac OS x','Android','Window 7', 'Window 8','Window 10','累计值']
    v1 = [0, 100, 300, 650, 1450, 1650, 0]
    v2 = [100, 200, 350, 800, 200, 200, 1850]
    bar = Bar("过去一周用户操作系统偏好","瀑布图")
    # 利用第一个 add() 图例的颜色为透明,即 'rgba(0,0,0,0)',并且设置 is_stack 标志为 True
    bar.add("", attr, v1, label_color=['rgba(0,0,0,0)'], is_stack=True)
    bar.add("", attr, v2, is_label_show=True, is_stack=True, label_pos='inside')
    bar
    
    <div id="5b372d4dcba849599cd982c0c25598ef" style="width:800px;height:400px;"></div>
    

    直方图

    import pandas as pd
    import numpy as np
    
    ages = np.random.normal(10,1,size=10000)
    bins = np.arange(6,14,0.1)  # bins 必须单调递增
    # 以bins每个元素做分割点,分箱
    cats = pd.cut(ages, bins)
    data = pd.value_counts(cats).sort_index()
    
    min(ages),max(ages)
    
    (6.307831760532157, 13.605225306256697)
    
    # 导入柱状图类
    from pyecharts import Bar
    
    bar = Bar("直方图")
    bar.add("", data.index, data.values, bar_category_gap=0)
    bar
    
    <div id="2a6535c5b883495ca7dcba48ac1e9d60" style="width:800px;height:400px;"></div>
    
    
    
    展开全文
  • highcharts 柱状图

    2019-09-23 22:36:51
    柱状图广泛应用于数据统计和分析,它是由一系列高度不等的纵向条纹表示数据分布的情况,能够直观的表示数据间的差异柱状图可以是纵向和横向排列,本文讲解通过Highcharts生成一个年度财经支出统计图和一个男女比例...
  • 文章目录关于pyecharts柱状图堆叠柱状图条形图直方图饼图圆环图玫瑰图下一节 关于pyecharts pyecharts是一个用于生成echart(百度开源的数据可视化javascript库)图表的类库。 pyecharts 分为 v0.5.x 和 v1.x 两个...
  • 题目:原题链接(困难) 标签:栈、栈-单调栈 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N3)O(N^3)O(N3) ...LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行
  • Highcharts柱状图常用参数

    千次阅读 2013-12-09 10:58:41
    柱状图广泛应用于数据统计和分析,它是由一系列高度不等的纵向条纹表示数据分布的情况,能够直观的表示数据间的差异柱状图可以是纵向和横向排列,本文讲解通过Highcharts生成一个年度财经支出统计图和一个男女比例...
  • python横向柱状图

    千次阅读 2020-11-25 20:46:33
    import pandas as pd import matplotlib.pyplot as plt ...# df = pd.read_excel('f://Research/2020/Xionjianli/Data/季节差异显著_genus1.xls',sheet_name) #修改字体大小及其格式 plt.rc('font',family='Time
  • 当遇到页面较而数据较小时,图形效果较小并且显示不明显,使用比例尺,能在有限空间内最大程度地展示图形效果。 3.为什么要绘制坐标轴? 绘制坐标轴有利于更直观地比较数据之间的差异。 二:思路及代码展示.....
  • 条形图是用途最广泛,最常见的数据图形之一,它的作用主要是:条形图/柱状图适合用于少数类别(<10)的分类数据的可视化,用来反映不同类别数据之间的差异。 一些使用的建议:可以使用堆叠的条形/柱状,通过颜色...
  • 本来想写echarts初始化函数的,但最近因为要写一个地图与柱状图的混合方式,也就是每个省的地图上要有柱状图显示。于是仔细使用了一下地图。 1、地图的一些基本属性就不介绍了,还是那些style 2、地图数据的获取以及...
  • echarts图例颜色与地图底色

    万次阅读 2015-04-03 10:59:37
    本来想写echarts初始化函数的,但最近因为要写一个地图与柱状图的混合方式,也就是每个省的地图上要有柱状图显示。于是仔细使用了一下地图。 1、地图的一些基本属性就不介绍了,还是那些style 2、地图数据的获取以及...
  • Python-matplotlib统计之箱线图漫谈

    千次阅读 2018-08-22 07:58:23
    不同于一般的折线图、柱状图或饼图等传统图表,只是数据大小、占比、趋势等等的呈现,其包含一些统计学的均值、分位数、极值等等统计量,因此,该图信息量较,不仅能够分析不同类别数据平均水平差异(需在箱线图中...
  • 不同于一般的折线图、柱状图或饼图等传统图表,只是数据大小、占比、趋势等等的呈现,其包含一些统计学的均值、分位数、极值等等统计量,因此,该图信息量较,不仅能够分析不同类别数据平均水平差异(需在箱线图中...
  • 3)柱状图能够比较清晰的区分个体数据的大小,一般情况下用于分析个体间变量的差异情况 4)进行比较分析时,一般只有一个维度的比较 5)柱状图的高度,反映数据的差异 注:柱状图的局限性在于只适用于小规模的...
  • 动手学数据分析task4

    2020-08-25 23:40:48
    柱状图 展示多个分类的数据变化和同类别各变量之间的比较情况。 适用:对比分类数据。 局限:分类过多则无法展示数据特点。 相似图表: 堆积柱状图。比较同类别各变量和不同类别变量总和差异。 百分比堆积柱状图。...
  • 作者| 诸葛君 你知道哪些做数据分析的...柱状图是最基础的一种图表,通过柱子来表现数据的高度,进而比较不同数据之间的差异,一眼可以看到数据量的大小对比,一般来说,柱状图的横轴是时间轴,纵轴是数据轴。 但...
  • 1、柱状图 展示多个分类的数据变化和同类别各变量之间的比较情况。 适用:对比分类数据(比较不同的数值)。 局限:分类过多则无法展示数据特点。 相似图表: 1)堆积柱状图。比较同类别各变量和不同类别变量...
  • 作为基本的图表形式,二维柱状图(条形图)常用来比较数值的大小,直观地了解不同的类别在数值上的差异。 适用:对比分类数据。 局限:分类过多则无法展示数据特点。 相似图表:1)堆积柱状图。比较同类别各变量和...
  • 比例型分类数据的可视化方式有:饼图、圆环图、百分比堆叠柱状图、百分比堆叠面积图等,当类目较多时可以把top5或者top6、top7(自己看情况)进行展示,剩下的类目归为其他,精简分类突出重点。 柱状图数据条过多时...
  • 大家都知道“一图胜千言...分组柱状图:用来比较分类项目的差异情况 分组条形图:用来反映项目之间的差异 饼图:用于反映部分占总体的比例 地图:反映区域之间的关系 折线图: 折线图用来反映随时间变化的趋
  • python进本操作求解

    2021-06-20 13:30:05
    基于(2)统计的词频结果,绘制图形展现各关键词出现次数的差异,可以是柱状图、折线图等,图形样式自定。并对图形进行修饰,即标注出中文状态下的横坐标、纵坐标、图形标题等。 基于(2)统计的词频结果,创建...
  • ... 3.本周点评作业:应完成点评23份,实际点评22份,1人未交。 4.本周作业遇到的问题:每个同学的能力差异很明显...部分同学只能完成词频统计功能,柱状图还是仅有几个人能完成,能明显看到同学们之间的差异。还有...
  • Python 中的 绘图库 提供了呈现数据的多种方式,可以满足你不同的偏好,如灵活性、...我通过绘制同一个多柱状图比较了多个 Python 绘图库的差异。正式开始之前,你需要将你的 Python 环境调整到能运行下面代码的状态
  • 一招教你玩转图表

    2020-06-19 11:28:00
    今天我们来说一说数据可视化,想必很多人在入门数据分析之后,就会经常进行可视化的工作,数据时代的快速发展,很难让人一眼看懂...1:当数据类型较少时可以采用柱状图 2:玫瑰图 玫瑰图适合对比大小相近的数值。它
  • 在绘制柱状图时,我们往往会定义很的画布,然而我们要可视化的数据确很小,这时会出现很多留白 的情况。为了根据显示刻度灵活变化宽高,而不是定死,特别是数据差异性很的时候,我们希望图表 显示范围都在画布...
  • 在很早之前就介绍过图表插件Highcharts的使用了,在2014年的随笔《基于MVC4+EasyUI的Web开发...以及对图表插件Highcharts的其他模块,如柱状图,线图等其他样式的信息进行动态设置,以期达到利用数据库的数据,方...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

柱状图差异大