- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40271 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12792
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
5 m) b7 {1 ?3 o8 ~
1 u" |0 C/ o6 g; VR语言|绘制二维直方图
0 D- M1 N: n/ | s9 ?: R- K ]5 R对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
" b) q' G3 w1 e7 b$ k+ f) C5 V
& D6 N; ~8 b! ^ a1.先绘制基础的散点图;1 Z/ N/ ^; }; l) }; t; M8 U5 a
##二维直方图
) c7 ]9 J/ n$ F2 J" }# Library, G, o" T/ R, c3 s, I9 ]2 b
library(tidyverse)
; q4 A+ w9 |* A# r$ q. U5 Flibrary(ggplot2)
0 O" \. ?( |) [" F- e
4 m! E4 q6 P7 a" U( @$ Q2 |$ A1 @# S# 读取数据
% v3 W r+ P) H# f! H6 x- d8 n7 qa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) ); ]4 p# H8 `+ q+ O( n6 e
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
3 r1 i9 R. l/ a, ^4 [0 @, d/ nc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
) u8 x2 j% ]* w2 j" O& m+ E. Mdata <- rbind(a,b,c)8 n* X/ a! N! H2 O1 z4 K8 C% L7 @
, y4 u1 t( i9 d6 I$ {+ d' ^4 ]( J
#绘制基础的散点图! ?: p5 v1 w9 `) a* J
ggplot(data, aes(x=x, y=y) ) +8 u( `/ H1 f' n: i
geom_point()
! @% k( z5 d- ?4 W: }( C) x0 G9 B; q# D% [! }8 B* ^
![]()
. P+ P; G* J2 Y/ B, O4 k: }8 `* v3 M3 E; k. P# ?
2.绘制二维直方图。
7 }; m2 W6 ~+ u/ S- @####二维直方图可使用geom_bin2d()函数绘制5 R0 ]+ S X" ^. a
#二维直方图默认选项1 F# {, b0 y2 Q. m7 \% `
ggplot(data, aes(x=x, y=y) ) +- @! F4 n } U5 Z. r0 r. p1 _
geom_bin2d() +
6 J [2 P/ W+ @) Z% v) H8 E/ j theme_bw()1 l) ?8 U! j% Q) j1 i
! m% T3 Q5 q- y0 _# Bin大小控制与调色板
. {" D7 p3 H, Oggplot(data, aes(x=x, y=y) ) +
2 P, D# z4 A; U- ? geom_bin2d(bins = 70) +0 Q4 }5 u* d; g6 ]7 T o7 ~
scale_fill_continuous(type = "viridis") +
?; j& z3 Q+ r' f$ l: ?3 z theme_bw()9 q2 A/ L# Z, k
![]()
* `. k+ N1 k8 |6 o0 B4 l
% a) L( l2 U5 kR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 ! P0 V/ r" ^# ~: B8 n# k
# Packages
5 @/ }2 G" S: H& ]) g' G0 m) ilibrary(hexbin)7 `, H& D6 A7 O/ u$ N7 }
library(RColorBrewer)
. i* W0 @; M2 t$ w( I+ m
0 _3 \$ w' N4 Q4 S: }* Z6 o# Create data
/ H/ m; ?0 Z: M: H. t+ F3 N" v) f* hx <- rnorm(mean=1.5, 5000)" P/ {* g J5 N
y <- rnorm(mean=1.6, 5000)
2 [7 n" a w" X6 l+ ~& E: d. i# w, |4 C
# Make the plot* M7 }! F: H4 D }5 l2 A2 n3 @
bin<-hexbin(x, y, xbins=40)
5 K0 b5 c1 }; S# S4 Gmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))7 O$ t+ [! ~( g' F) ~
plot(bin, main="" , colramp=my_colors , legend=F )
- T0 Y, E! q/ |# s1 ]! a* s' o![]()
1 q+ E+ \7 F' Q" d9 q1 Y9 ]4 m2 _, f$ i& s
5 Z2 o( i) e' c0 d+ h7 t( w4 k
|
zan
|