后浪 · 正青春

R语言ggplot2绘图笔记

2021-11-21  本文已影响0人  日之朝矣

ggplot2 layers

最低层是“数据(DATA)”,统计肯定得有数据啊

其次是“美感(Aesthetics)”,也就是数据映射比例

第三是“几何(Geometry)”, 选择我们绘图的外观

第四是"主题(Theme)", 控制所有非数据墨水

基本操作

# 先把数据层放这里
plt_data_layer <- ggplot(data,aes(x,y,...(color,size...))) 
# 然后画点图,并且以颜色按数据中的 clarity列 分类
plt_price_vs_carat_by_carity <- plt_data_layer + geom_point(aes(color = clarity))
# 如果想一张图显示多个图种
plt_multiple <- lt_price_vs_carat_by_carity + geom_smooth()
# 最后打印出图像
print(plt_price_vs_carat_by_carity)
# 也可以不同的图种使用不同的数据
# 先把数据层放这里
plt_data_layer <- ggplot(data) 
# 然后画点图,并且以颜色按数据中的 clarity列 分类
plt_price_vs_carat_by_carity <- plt_data_layer + geom_point(aes = (x, y, color = clarity))
# 如果想一张图显示多个图种
plt_multiple <- lt_price_vs_carat_by_carity + geom_smooth(aes = (x, y))
# 最后打印出图像
print(plt_price_vs_carat_by_carity)

可见美学(Visible aesthetics)(其实就是各种自定义或者美化操作)

==aes()中的一些参数==

aes 即 Aesthetics(美学)

使用方法:

aes(alpha = .2): 透明度20%

aes(color = clarity): 颜色以clarity的不同值分类

aes(color = 'red'): 颜色为红色

aes(size = clarity): 一般是点图的点,大小以clarity的不同值分类

Aesthetic Description Available Value
x X axis position 数据集某列
y Y axis position 数据集某列
fill Fill color
color Color of points, outlines of other geoms 以列不同值上色,或指定颜色'red'
size Area or radius of points, thickness of line 以列不同值给大小,或指定数字值
alpha Transparency 0 ~ 1.0 (可用缩写如.6)
linetype line dash pattern
labels Text on a plot or axes
shape Shape 形状参数

各种图


动画效果

if(!require(gapminder)){
    install.packages("gapminder")
}
# 获取数据:
library(gapminder)
# 绘图包
library(ggplot2)
# 动画包
library(gganimate)

# 用ggplot作图, 添加 frame=year
test <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, color = continent)) +
  geom_point() +
  scale_x_log10() +
  theme_bw() +
# 在这里
  labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +
  transition_time(year) +
  ease_aes('linear')
# 保存为GIF:
anim_save("271-ggplot2-animated-gif-chart-with-gganimate1.gif")

效果:


由于RStudio没法在右边的预览框看到绘图动画效果,只能保存下来看了,

而且保存可能会出一些问题,比如file_renderer failed to copy frames to the destination directory,

这个问题试下把RStudio用管理员权限打开

或者看这个视频跟着做一下试试
gganimate mac - Warning: file_renderer failed to copy frames to the destination directory SOLVED
视频来源于YouTube,作者的电脑是MacOS

我的问题虽然上面这种方法没有解决,但它第二天打开这个问题自己就消失了,挺莫名其妙的

附录

shape取值

上一篇下一篇

猜你喜欢

热点阅读