精华内容
下载资源
问答
  • ggplot2柱状图
    2021-11-26 08:35:44

    柱状图

    library(tidyverse)
    df3 <- tibble(
      obj = c('LONGGi', 'JINKO', 'TRINA', 'JASO', 'Canadian Solar'),
      SiliconWafer = c(85, 22, 0, 18, 5),
      Battery = c(30, 11, 12, 18, 13),
      Module = c(50, 32, 22, 23, 14),
      name = factor(obj, levels = c('LONGGi', 'JINKO', 'TRINA', 'JASO', 'Canadian Solar'))
    
    )
    
    df31 <- df3 %>%
      select(!obj)
    
    df31 <- df31 %>%
      pivot_longer(-name, names_to = "var", values_to = "value")
    df31$var <- factor(df31$var, levels = c("SiliconWafer", "Battery", "Module"))
    gg3 <- ggplot(df31, aes(x = name, y = value, fill = var)) +
      geom_blank(aes(y = 90)) +
      geom_col(width = 0.75, position = position_dodge(0.8)) +
      geom_text(aes(x = name,y = value + 3,label = value, group = var), position = position_dodge(0.7)) +
      scale_fill_manual(values = c("#a3daff", "#1ec0ff", "#03a6ff"))
    gg4 <- gg3 + theme(axis.ticks = element_line(linetype = "blank"),
        axis.text = element_text(size = 12),
        panel.background = element_rect(fill = NA),
        legend.key = element_rect(fill = NA),
        legend.position = c(0.5167, 0.9),
        legend.direction = "horizontal") + labs(x = NULL, y = NULL) +
        geom_hline(yintercept = 0, colour = "#DCDDD8") +
        geom_blank(aes(y = 90)) +
        scale_y_continuous(breaks = seq(0, 90, 15))
    
    gg4
    

    eaks = seq(0, 90, 15))

    gg4

    在这里插入图片描述

    更多相关内容
  • 最全的条形绘制方法总结,毕业论文绘图必须教程,方便快捷解决你的绘图困扰
  • 关于基本的直方图设置、纵坐标对数变换以及基本的颜色设置,可以参考R语言ggplot2直方图设置。 本文使用的数据为:R语言自带的mtcars数据集的mpg变量。以下内容中将首先给出目标图片和代码,并逐一解释。欢迎批评...

    关于基本的直方图设置、纵坐标对数变换以及基本的颜色设置,可以参考R语言ggplot2直方图设置。 本文使用的数据为:R语言自带的mtcars数据集的mpg变量。以下内容中将首先给出目标图片和代码,并逐一解释。欢迎批评指正!

    1. 图片及所有代码

    在这里插入图片描述

    # 获取mpg变量的密度
    dense = data.frame(density(mtcars$mpg)[c('x','y')])
    
    ggplot(mtcars,aes(x =mpg))+
            geom_histogram(aes(y=..density..), color="#88ada6", alpha=.25, fill="#fffbf0", binwidth = 2, center=1)+
            geom_density()+
            geom_area(data = subset(dense,x >= 10 & x < 15), aes(x, y, fill = "Label 1"), alpha=.4)+
            geom_area(data = subset(dense,x >= 15 & x < 20), aes(x, y, fill = "Label 2"), alpha=.4)+
            geom_area(data = subset(dense,x  >= 20 & x < 25), aes(x, y, fill = "Label 3"), alpha=.4)+
            geom_area(data = subset(dense,x >= 26 & x < 30), aes(x, y, fill = "Label 4"), alpha=.4)+
            geom_area(data = subset(dense,x >= 30), aes(x, y, fill = "Label 5"), alpha=.4)+
            scale_fill_manual("Label title", 
                              breaks = c("Label 1", "Label 2", "Label 3", "Label 4", "Label 5"), 
                              values = c("Label 1"="#4b5cc466", "Label 2"="#16a95166", "Label 3"="#ffb61e66", "Label 4"="#ff750066", "Label 5"="#c3272b66"))+
            labs(title="title",
                 subtitle="subtitle",
                 caption = "caption",
                 x = 'x axis title',
                 y = 'y axis title')+
      theme_bw()+
            theme(plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
                  plot.subtitle = element_text(size = 12, face = "bold", hjust = 0.5),
                  plot.caption = element_text(size = 12, face = "italic"),
                  axis.text = element_text(size=12),
                  axis.title = element_text(size=14, face="bold"))+
            geom_vline(xintercept = 15,linetype = "twodash",color="blue",size = 1)+
            annotate("rect", xmin = 10, xmax = 18, ymin = 0.05, ymax = 0.07, alpha = .1, fill="navy")+
            annotate("text", fontface = "bold", color="blue",
                     x = 14, y=0.06,
                     label = 'annotation', size=6)
    

    2. 按步骤说明

    2.1 最基本的直方图(颜色,柱宽,位置)

    首先绘制一个基本的直方图,横坐标为mpg的值,纵坐标为密度。额外设置了填充色、边框色、透明度、柱宽、柱子的位置。代码中标注“可以不设置”的部分如无需要均可删除。

    ggplot(mtcars,aes(x =mpg))+
            geom_histogram(aes(y=..density..), # 纵坐标是密度。类似也可以将纵坐标设置为频数(count)
                           color="#88ada6", fill="#fffbf0", # 边框与填充色,可以不设置
                           alpha=.25,  # 透明度,可以不设置
                            binwidth = 2, # 柱子的宽度。类似得也可以设置柱子的个数,如bins = 30
                           center = 0) # 柱子与对应横坐标的相对位置。0是指居中对齐。1是指对应数字在柱子的右侧边线。可以不设置
    

    在这里插入图片描述

    2.2 在直方图上加密度曲线

    在上图基础上,可以直接用geom_density函数加上密度曲线(代码最后一行)。

    g=ggplot(mtcars,aes(x =mpg))+
            geom_histogram(aes(y=..density..), # 纵坐标是密度。类似也可以将纵坐标设置为频数(count)
                           color="#88ada6", fill="#fffbf0", # 边框与填充色,可以不设置
                           alpha=.25,  # 透明度,可以不设置
                            binwidth = 2, # 柱子的宽度。类似得也可以设置柱子的个数,如bins = 30
                           center = 0)+ # 柱子与对应横坐标的相对位置。0是指居中对齐。1是指对应数字在柱子的右侧边线。可以不设置
            geom_density() # 密度曲线
    g
    

    在这里插入图片描述

    2.3 添加(修改)标题与横纵轴名称,并修改标题格式。

    要设置标题和横纵坐标轴名称,可以通过+labs函数。标题,副标题,脚标题,横、纵坐标轴的内容可以分别通过参数title,subtitle,caption,x,y来设置。
    要设置标题和坐标轴文字的格式,可以在theme函数中改变plot.title,plot.subtitle,plot.caption.axis.text,axis.title这几个变量。假如希望将横纵坐标轴的格式分别设置,也可以将axis.text换成axis.text.xaxis.text.y
    在上图基础上,以下代码设置了labstheme两个部分。

    g = g+ labs(title="title", 
                 subtitle="subtitle",
                 caption = "caption",
                 x = 'x axis title',
                 y = 'y axis title')+
            theme(plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
                  plot.subtitle = element_text(size = 12, face = "bold", hjust = 0.5),
                  plot.caption = element_text(size = 12, face = "italic"),
                  axis.text = element_text(size=12),  # 坐标轴上的文字
                  axis.title = element_text(size=14, face="bold")) # 坐标轴标题
    g
    

    在这里插入图片描述

    2.4 添加背景填充并且设置其颜色

    首先,我们得到mpg的密度,记为dense。这是一个拥有两列的数据框(data.frame),两列分别代表mpg的值(x)与其对应密度(y)。

    # 获取mpg变量的密度
    dense = data.frame(density(mtcars$mpg)[c('x','y')])
    

    在上图基础上,我们通过多次调用geom_area函数,为处于不同区间的mpg值(也就是横坐标的值),绘制不同的背景。在每次使用geom_area函数中,我们改变的参数有:

    • data:这段背景图所采用的的数据集。下面实例中通过subset函数选取了密度数据框dense的子集。
    • fill:颜色填充。这里填写的是标签的名字,以便在图例中显示。
    • alpha:透明度。取值在 0 0 0 1 1 1之间,越小越透明。
    g = g + 
            geom_area(data = subset(dense,x >= 10 & x < 15), aes(x, y, fill = "Label 1"), alpha=.4)+
            geom_area(data = subset(dense,x >= 15 & x < 20), aes(x, y, fill = "Label 2"),alpha=.4)+
            geom_area(data = subset(dense,x  >= 20 & x < 25), aes(x, y, fill = "Label 3"), alpha=.4)+
            geom_area(data = subset(dense,x >= 26 & x < 30), aes(x, y, fill = "Label 4"), alpha=.4)+
            geom_area(data = subset(dense,x >= 30), aes(x, y, fill = "Label 5"), ,alpha=.4)
    g
    

    在这里插入图片描述

    2.5 改变背景填充颜色

    在上图基础上,通过添加scale_fill_manual来改变颜色。其中我们设置了

    • 图例标题。设置在了函数的第一个变量(我不知道这个变量叫什么,欢迎补充!),也即"Label title"。
    • breaks:改变颜色的地方(一个向量)。这里填的是图例名称,如"Lable 1"。
    • values:颜色(一个向量)。对每个分量,这里采用了”Label 1“=’#4b5cc466‘的方式。也可以直接填写颜色名称。
    g = g + scale_fill_manual("Label title", 
                              breaks = c("Label 1", "Label 2", "Label 3", "Label 4", "Label 5"), 
                              values = c("Label 1"="#4b5cc466", "Label 2"="#16a95166", "Label 3"="#ffb61e66", "Label 4"="#ff750066", "Label 5"="#c3272b66"))
    g
    

    2.6 添加竖直线条

    可以用geom_abline添加直线。特别地,可以用geom_vlinegeom_hline分别添加竖直和水平的线条。为方便记忆,这里的”v"和”h“分别代表"vertical"和"horizontal"(个人理解)。

    g = g + geom_vline(xintercept = 15,linetype = "twodash",color="blue",size = 1)
    g
    

    在这里插入图片描述

    2.7 图中添加文字与矩形注释

    在之前的代码基础上,可以通过annotate函数添加注释。将geom变量设为”text“和”rect“分别代表文字与矩形。并且可以调整其位置、大小、颜色等。
    以下代码中分别添加了文字与矩形。

    g = g+annotate(geom = "rect", xmin = 10, xmax = 18, ymin = 0.05, ymax = 0.07, alpha = .1, fill="navy")+
            annotate(geom = "text", fontface = "bold", color="blue",
                     x = 14, y=0.06,
                     label = 'annotation', size=6)
    g
    

    在这里插入图片描述

    2.8 改变图片背景颜色与线条

    通过theme_bw()函数来采用ggplot2为我们提供的一种背景格式。类似的格式还有theme_classic()等。可以直接参考文首的代码绘制下图。

    在这里插入图片描述
    【注1】:请将”+theme_bw()“这句代码加在对theme的设置前面,否则它可能覆盖掉theme的部分设置。例如,如果在前文代码上做如下修改,那么图片的总标题则被移回了最左端。

    g + theme_bw()
    

    在这里插入图片描述

    【注2】:为规避上述问题,可以参考ggplot2边框背景去除来手动更改边框与背景。

    展开全文
  • R语言ggplot2直方图设置

    千次阅读 2019-08-12 09:31:38
    ggplot2直方图最基本的代码为: ggplot(data=travel)+geom_histogram(aes(x=sale)) 这里面travel是data frame,sale是我要画直方图的数据。 这个时候会出现warning: 这说明他默认了直方图中“柱”的个数,但是...

    1.基本代码

    用ggplot2画直方图最基本的代码为:

    ggplot(data=travel)+geom_histogram(aes(x=sale))
    

    这里面travel是data frame,sale是我要画直方图的数据。
    这个时候会出现warning:
    在这里插入图片描述
    这说明他默认了直方图中“柱”的个数,但是其实我是可以自己设置的。既可以通过bin的个数设置,也可以通过bin的宽度设置:

    ggplot(data=travel)+geom_histogram(aes(x=sale),bins=20) 
    
    ggplot(data=travel)+geom_histogram(aes(x=sale),binwidth=20) 
    

    2.对数变换

    我们常常遇到的数据都是偏态的,直方图非常不美观:
    在这里插入图片描述
    这时候可以通过对数变换解决:

    ggplot(data=travel)+geom_histogram(aes(x=log(sale)))
    

    在这里插入图片描述
    这里横坐标的值就变成了对数值,如果还希望图片中显示对应的没有对数变换过的值,可以采取如下方式:

    ggplot(data=travel)+geom_histogram(aes(x=sale))+
      scale_x_log10(breaks=c(10,100,300,1e3),               
                    labels=c("10", "100","300", "1000")) 
    

    在这里插入图片描述

    3.颜色设置

    首先采用theme_classic(),去掉背景

    ggplot(data=travel)+geom_histogram(aes(x=sale))+
      scale_x_log10(breaks=c(10,100,300,1e3),               
                    labels=c("10", "100","300", "1000")) +
                    
                    theme_classic()
    

    在这里插入图片描述
    然后在geom_histogram()里面用fill设置柱子填充色,用color(也可以是col)设置边框。

    ggplot(data=travel)+geom_histogram(aes(x=sale),
                                fill="gold",color="white")+
                                
      scale_x_log10(breaks=c(10,100,300,1e3),               
                    labels=c("10", "100","300", "1000")) +
                      theme_classic()
    

    在这里插入图片描述
    这里颜色设置除了直接打颜色的名称,也可以采用十六进制颜色编号,以下代码也可以实现上图。

    ggplot(data=travel)+geom_histogram(aes(x=sale),fill="#FBD84A",color="#FFFFFF")+
      scale_x_log10(breaks=c(10,100,300,1e3),               
                    labels=c("10", "100","300", "1000")) +
      theme_classic()
    

    如果在作图时想用一个图片的配色,但是不知道这个颜色的十六进制颜色编号,可以采取以下方法:

    1. 截图放到ppt里面
    2. 随便插入一个矩形圆形之类的形状,在设置这个形状颜色的时候,用取色器取之前图片的颜色,得到十六进制颜色编号,如图:
      在这里插入图片描述

    4.坐标轴名称

    关于中文坐标轴名称的设置可以参考下文:
    https://blog.csdn.net/weixin_45387324/article/details/99284765

    展开全文
  • R语言 ggplot2 柱状图

    2020-07-01 00:12:39
    library(ggplot2) # create a dataset specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) ) condition <- rep(c("normal" , "stress" , "Nitrogen") , 4) ...
     # library
    library(ggplot2)
     
    # create a dataset
    specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
    condition <- rep(c("normal" , "stress" , "Nitrogen") , 4)
    value <- abs(rnorm(12 , 0 , 15))
    data <- data.frame(specie,condition,value)
     
    # Grouped
    ggplot(data, aes(fill=condition, y=value, x=specie)) + 
        geom_bar(position="dodge", stat="identity")
    

    在这里插入图片描述

     # library
    library(ggplot2)
     
    # create a dataset
    specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
    condition <- rep(c("normal" , "stress" , "Nitrogen") , 4)
    value <- abs(rnorm(12 , 0 , 15))
    data <- data.frame(specie,condition,value)
     
    # Stacked
    ggplot(data, aes(fill=condition, y=value, x=specie)) + 
        geom_bar(position="stack", stat="identity")
    

    在这里插入图片描述

    展开全文
  • 给条形填充纹理图案
  • ggplot2绘制直方图

    2022-05-03 12:07:57
    ggplot2绘制直方图 以下数据框包含一列,其中包含两个具有不同均值和相同方差的正态分布,以及一个表示哪些观察属于每个分布的分类变量。 set.seed(3) x1<-rnorm(500) x2<-rnorm(500,mean=3) x<-c(x1,x2...
  • ggplot(data = rate,aes(x=reorder(地区,地区生产总值.)))+ geom_bar(aes(y=地区生产总值.,fill=地区),stat = "identity")+ labs(title = "2015年山东各地市生产总值及占比情况")+ geom_text(aes(label=rate$地区...
  • ggplot2绘制直方图
  • 这篇文章大致会讲一些ggplot2的大致用法,包含了各类图形,如折线图、柱状图、箱型图等等的画法。其中会包含一些代码知识,比如形状、颜色和与数据对应的解释。内容会处于不断完善的过程中,欢迎各位提出建议! ...
  • 13. R——ggplot2 多个图例分离显示方法汇总.pdf
  • 第一步:准备数据将准备用直方图展示的数据整理在excel中,每个变量一列,比如本文用到的例子 将其另存为csv格式。 以上数据来源 https://www.r-graph-gallery.com/220-basic-ggplot2-histogram.html第二步:ggplot2...
  • R语言ggplot2绘图——柱状图

    万次阅读 2019-05-26 09:11:18
    stat=”“identity”:指定了柱状图的高度(y) fill=obj:填充的柱状图的颜色 修改柱状图的宽度 ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+ geom_bar(stat="identity",width=...
  • R语言ggplot2可视化改变柱状图(条形图)的填充色实战:默认的颜色为灰色、改变柱状图(条形图)的填充色、设置每个柱子(条形)使用不同的色彩 目录 R语言ggplot2可视化改变柱状图(条形图)的填充色实战:默认...
  • R中用ggplot2画百分比柱状图

    千次阅读 2021-04-12 19:12:30
    ggplot2画百分比柱状图 ## 添加字体 library(showtext) ## 为了使ggplot中有中文字体,可根据自己电脑里字体的位置自行添加。 font_add("kt", "/Users/cpf/Library/Fonts/楷体_GB2312.ttf") showtext_auto() # ...
  • R语言ggplot2快速入门直方图

    千次阅读 2018-09-08 00:22:48
    R语言ggplot2快速入门直方图 助研科技技术员001编写 我们将用最简单的案例来说明即将说明的各种类型的直方图 若有疑问请咨询QQ3381528417或留言 普通直方图 代码 library(ggplot2) str...
  • 偶然看到了这个链接里有几张可以用来练习ggplot2,就试着写了一下代码,这里记录一些我认为有些难度的与代码。 习题Problem 2 习题描述 Using the mpg dataset in the ggplot2 package, replicate the plot ...
  • ggplot 直方图(histogram)

    千次阅读 2020-10-30 21:38:09
    ggplot 直方图(histogram) 重要的参数 参数 含义 position 位置调整参数 bins 直方图的柱子的数目 alpha 设置颜色的程度 breaks 设置柱子的起始、终止大小及每个柱子的宽度 position 位置调整...
  • R语言ggplot2可视化:ggplot2可视化直方图(histogram)并在直方图的顶部外侧(top upper)或者直方图内部添加数值标签
  • ggplot2柱状图

    万次阅读 2018-08-01 15:41:12
    柱状图一般有三种形式: 填充式 堆积式 并列式 填充式 1)填充式需要设定几何对象geom_bar()的参数position='fill'(堆叠数据,百分比展示) 首先数据格式是这样的:   library(ggplot2) data&lt;-...
  • 详细讲解如何在ggplot2中调整坐标轴的显示方法
  • ggplot2柱形/条形顺序调整

    千次阅读 2021-04-23 19:41:37
    ggplot2柱形/条形顺序调整要点代码 要点 ggplot2条形横坐标顺序以及图例顺序如何调整,先将横坐标因子化为图例中想要的顺序,然后使用在aes中使用reorder函数改变中的横坐标顺序 代码 df%>% mutate...
  • ggplot2 调整绘图区域大小

    千次阅读 2021-10-16 14:37:51
    library(ggplot2) library(ggthemes) p  ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(colour=factor(cyl))) + guides(color=F) p  p + theme_solarized(light=FALSE) + scale_colour_...
  • 如何用ggplot2做出真正的直方图

    千次阅读 2019-01-20 17:35:23
    问题:当用geom_histogram()或geom_freqpoly()在做频率直方图或频率直线图的时候,发现纵轴显示的是count而不是真正的比例,如果解决这个问题呢? 解决方法:1.在主映射aes()中将取y = ..count../sum(..count..),但...
  • R语言ggplot2可视化将柱状图(条形图)对应的统计数值添加到柱体的上方实战 目录 R语言ggplot2可视化将柱状图(条形图)对应的统计数值添加到柱体的上方实战 #仿真数据 #柱状图(条形图)对应的统计数值添加到...
  • library(ggplot2) # 我们拿到这样的数据 name ("多","中","少","中","少") data (name) # 转化为数据框p2 <- ggplot(data,aes(x=name)) + geom_bar(width=0.7,fill=rgb(50,163,221,maxColorValue=
  • R语言使用ggplot2可视化互相覆盖的直方图实战(Overlaying histograms) dat <- data.frame(xx = c(runif(100,20,50),runif(100,40,80),runif(100,0,30)),yy = rep(letters[1:3],each = 100)) ggplot(dat,...
  • 玩转R语言ggplot2数据可视化 本系列主要介绍R语言ggplot2的使用 参考资料: ggplot2: Elegant Graphics for Data Analysis 文章目录玩转R语言ggplot2数据可视化1.使用案例数据 ggplot2是R语言数据可视化中的重要库之...

空空如也

空空如也

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

ggplot2柱状图