R语言——ggplot

导入所需包

install.packages("tidyverse")
library(tidyverse)

绘图模板:

ggplot(data = ) +
(mapping = aes())
【注】ggplot()的第一个参数是要在图中使用的数据集,函数 geom_point() 向图中添加一个点层,这样就可以创建一张散点图。mapping 参数总是与 aes() 函数成对出现,aes() 函数的参数分别指定了映射到 x 轴的变量与映射到 y 轴的变量。

ggplot(data = mpg) +
    geom_point(mapping = aes(x = displ, y = hwy))

①将图中的图形属性映射为数据集中的变量,可以传达出数据的相关信息。例如,可以将点的颜色映射为变量class,从而揭示每辆汽车的类型:

 ##颜色##
ggplot(data = mpg) +
    geom_point(mapping = aes(x = displ, y = hwy, color = class))

###大小size = class;透明度 alpha = class ;形状 shape = class

②为几何对象设置图形属性,需将其作为几何对象函数的一个参数,需要在aes( )函数的外部进行设置。

geom_bar( )条形图 ;geom_boxplot( ) 箱线图

   ggplot(data = mpg) +
      geom_point(mapping = aes(x = displ, y = hwy), color = "blue")

③facet_wrap( )函数可通过单个变量对图进行分面,第一个参数是一个公式,创建公式的方式是在~符号后面加一个变量名。

ggplot(data = mpg) +
   geom_point(mapping = aes(x = displ, y = hwy)) +
    facet_wrap(~ class, nrow = 2)

④通过两个变量对图进行分面,需要在绘图命令中加入facet_grid( )函数,函数的第一个参数也是一个公式,但该公式包含由 ~ 隔开的两个变量名。

ggplot(data = mpg) +
   geom_point(mapping = aes(x = displ, y = hwy)) +
    facet_grid(drv ~ cyl)

⑤更改几何对象:曲线

ggplot(data = mpg) +
   geom_smooth(mapping = aes(x = displ, y = hwy))

⑥按不同线型分类画出不同的曲线:

ggplot(data = mpg) +
     geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv))
## 按组分类group = drv; 按颜色分类color = drv

⑦在同一张图中显示多个几何对象,可以向ggplot()函数中添加多个几何对象函数:

ggplot(data = mpg) +
   geom_point(mapping = aes(x = displ, y = hwy)) +
      geom_smooth(mapping = aes(x = displ, y = hwy))

• 避免代码重复,可将一组映射传递给ggplot( )函数:

ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
    geom_point( ) +
      geom_smooth( )

⑧为不同的图层指定不同的数据:
如果将映射放在几何对象函数中,那么ggplot2会将其看作这个图层的局部映射,它将使用这些映射扩展或覆盖全局映射,但仅对该图层有效。这样一来,我们就可以在不同的图层中显示不同的图形属性。

ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
    geom_point(mapping = aes(color = class)) +
        geom_smooth()

⑨geom_bar( )条形图:

ggplot(data = diamonds) +
      geom_bar(mapping = aes(x = cut))
### 几何对象函数和统计变换函数可以互换使用,可以使用stat_count( )替换 geom_bar( ),
###来重新生成前面那张图。

表示比例(而不是计数)的条形图:

ggplot(data = diamonds) +
   geom_bar(
     mapping = aes(x = cut, y = ..prop.., group = 1)
       )

• 检查连续变量的分布,可以使用直方图geom_histogram( ),用 binwidth 参数来设定直方图中间隔的宽度:

ggplot(data = diamonds) +
     geom_histogram(mapping = aes(x = carat), binwidth = 0.5)

⑩stat_summary( )函数为x的每个唯一值计算y值的摘要统计:

ggplot(data = diamonds) +
  stat_summary(
     mapping = aes(x = cut, y = depth),
  fun.ymin = min,
  fun.ymax = max,
  fun.y = median 
)

11)可以使用color= 或者 fill=(这个更有用)图形属性来为条形图上色:

ggplot(data = diamonds) +
    geom_bar(mapping = aes(x = cut, color = cut))
###如果将fill图形属性映射到另一个变量(如 clarity),那么条形会自动分块堆叠起来,
###每个彩色矩形表示 cut 和 clarity 的一种组合。

ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity))

12)避免散点图重叠,利用position = "jitter"可以为每个数据点添加一个很小的随机扰动,这样就可以将重叠的点分散开来:

ggplot(data = mpg) +
   geom_point(
    mapping = aes(x = displ, y = hwy),
    position = "jitter"
      )

13)coord_flip( )函数可以交换x轴和y轴:

ggplot(data = mpg, mapping = aes(x = class, y = hwy)) +
    geom_boxplot()
####
ggplot(data = mpg, mapping = aes(x = class, y = hwy)) +
   geom_boxplot( ) +
     coord_flip( )

14)geom_abline( )函数

abline(a,b) 表示画一条y=ax+b的直线
abline(y) 表示画一条过所有点的水平直线
abline(v=x) 表示画一条过所有点的竖直直线
abline(lm,obj) 表示画出线性模型得到的线性方程

**向前面的代码模板中添加位置调整、统计变换、坐标系和分面:

ggplot(data = ) +

(

mapping = aes(),

stat = ,

position =

) +

+

你可能感兴趣的:(R语言——ggplot)