本文已参加「新人创作礼」活动,一起开启创作之路。

这次带来的是RStudio的图形系统 – 补充 其一。

补充: 第三方绘图包ggplot2介绍

ggplot2R中非常流行的绘图系统, 它是现代图形语法的一种实现. 自从问世以来已经获得了巨大成功, 并被移植到了其它数据科学语言中(比如Python).

ggplot2根据现代图形语法理论, 将图形分为以下几个部分:

  • data钻石据来源
  • mappin钻石婚约之独占神秘妻g映射
  • geom_xx钻石香烟xx,geom几何对象函数
  • statappear_xxxx,stat统计变换函数
  • coord_xxxx坐标系设置
  • scale_xx钻石王牌xx控制映射方式
  • facet_xxxx分面设置
  • theme_xxxx主题设置
  • 用加号+连接不同的图层

其中前三个部分是必须由用户指定的, 后面几个部分有默认值(根据前三者不同而使用不同的默认值), 当这些部分没有被指定时会钻石糖使用对应的默认值, 当然用户也可以通过主动设置来得到不同的效果.

准备数据

library(dplyr)
library(ggplot2)
# 准备数据, 从diamonds数据集中随机选择500个钻石样本
set.seed(2021)
rows = sample(nrow(diamonds), 500)
d500 = diamonds[rows,]
# 使用dplyr做筛选的写法
set.seed(2021)
diamonds %>% sample_n(size = 500) -> d500

数据和映射经常是写在同一个图层中的: data, mapping

ggplot(data = d500, mapping = aes(x = carat, y = price))

可视化:RStudio 图形系统 - 补充 其一

再加上gappeareom层就钻石婚约之独占神秘妻能构成一个最简图形

ggplot(data = d500, mapping = aes(x = carat, y = price)) +
  geom_point()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, mapping = aes(x = carat, y = price)) +
  geom_line()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, mapping = aes(x = carat, y = price)) +
  geom_col()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, mapping = aes(x = carat, y = price)) +
  geom_hex()

可视化:RStudio 图形系统 - 补充 其一

设置点的大小,形状,颜色,透明度等参数

ggplot(data = d500, mapping = aes(x = carat, y = price)) +
  geom_point(size = 2, pch = 6, color = "red", alpha = 0.3) # alpha 用来设置透明度

可视化:RStudio 图形系统 - 补充 其一

理解这些设置钻石夜总会在aes(…)内部和外部的区别

ggplot(data = d500, mapping = aes(x = carat, y = price, color = cut, size = carat)) +
  geom_point(pch = 18)

可视化:RStudio 图形系统 - 补充 其一

下面是一python怎么读些常用geom_xxxx函数

# 散点图 geom_point
# 线图 geom_line
# 条形图 geom_bar
ggplot(data = d500, aes(x = cut)) +
  geom_bar()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut)) +
  geom_bar(color = "orange", fill = "white")

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut, color = cut)) +
  geom_bar(fill = "white")

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut, fill = cut)) +
  geom_bar()

可视化:RStudio 图形系统 - 补充 其一

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

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut, fill = clarity)) +
  geom_bar(position = "dodge")

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut, fill = clarity)) +
  geom_bar(position = "fill")

可视化:RStudio 图形系统 - 补充 其一

# 直方图 geom_histogram
ggplot(data = d500, aes(x = carat)) +
  geom_histogram()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = carat)) +
  geom_histogram(color = "white")

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = carat, fill = cut)) +
  geom_histogram(color = "white")

可视化:RStudio 图形系统 - 补充 其一

# 箱线图 geom_boxplot
ggplot(data = d500, aes(x = carat)) +
  geom_boxplot()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(y = carat)) +
  geom_boxplot()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = factor(1), y = carat)) +
  geom_boxplot()

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut, y = carat)) +
  geom_boxplot(color = "#377EB8")

可视化:RStudio 图形系统 - 补充 其一

ggplot(data = d500, aes(x = cut, y = carat, fill = cut)) +
  geom_boxplot()

可视化:RStudio 图形系统 - 补充 其一