- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40296 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12800
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
8 v8 R$ i9 B. R# q& w0 z/ x# H
( T3 V) _% S1 ^, QR语言|绘制二维直方图9 J6 H5 ^% S( M; q% O- K1 i
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。" s6 Z3 C* j2 Q
6 \5 }5 W. G$ [. o( S: ^& q) G1.先绘制基础的散点图;
3 v' E' z r' l6 @! M8 r# j3 O##二维直方图) H0 \$ ], `4 e7 O9 m
# Library! t" g9 ~) E' Q, X& Q; u
library(tidyverse)9 K$ X" O4 H- J7 a
library(ggplot2)
0 C4 A* X0 k* B, | y* g; M
' t: l8 \$ u* j1 x6 z5 t" u6 J# 读取数据
$ t% e) D$ M6 {a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
+ W3 [$ n4 g [: z4 s6 W0 Kb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )- h* e9 j& v [# B" H Z! H3 g
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )4 k. f* m% W: ]- S2 p, X
data <- rbind(a,b,c)
$ J! T0 L5 X* U) R
. b; y6 X( ~3 D#绘制基础的散点图& ^# o. H: G C' e1 O6 l
ggplot(data, aes(x=x, y=y) ) +3 ?3 s- Y7 }' t1 l- V- F; ~( n% `
geom_point()
( W* l1 Y$ C( D" }: {, U- p1 L2 D* B7 J' R$ C
/ @1 d% j0 l% c& I; X* m
5 K6 Q4 |5 s9 A: v0 i# H3 {# I
2.绘制二维直方图。, c! D9 p. @7 j* n0 f* B; ]
####二维直方图可使用geom_bin2d()函数绘制! S" m) Q' f6 a5 a( j" p$ ^$ a
#二维直方图默认选项( Z/ m3 B! u6 X1 n/ Z
ggplot(data, aes(x=x, y=y) ) +
. s R* [* _0 W$ U& Y8 ^1 F& n geom_bin2d() +. _5 ~( C0 M0 D m& i; l8 @1 s
theme_bw()0 q$ ~/ [. {. |
- `4 X0 H- o0 J7 Y6 H2 F9 u# Bin大小控制与调色板: ?# h" m z; E& i) _' ?+ k
ggplot(data, aes(x=x, y=y) ) +/ ~4 t% s3 m% ]/ ^
geom_bin2d(bins = 70) +
0 D# s5 C8 Z: m9 r. P3 | scale_fill_continuous(type = "viridis") +
9 A& `# A9 ~/ D0 F8 y theme_bw()7 I+ V0 x' ?& H. G! o) C% V
![]()
) o6 d- o3 X0 @4 |
, S' ]3 `6 O# M1 `R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
" U4 H x) H9 n) c' ]# Packages1 `2 G/ a; ]% b- ?& H' I( c' U
library(hexbin)
9 f1 d4 s; r4 j4 }& O8 Ulibrary(RColorBrewer)
( o. W% Y) e# S/ c! {$ W" b% t# G& U1 a S$ m. j" b6 }" h$ \
# Create data7 X+ G% Z0 Q: }( q
x <- rnorm(mean=1.5, 5000)
' W G t, t4 j7 q4 j) X' o4 ky <- rnorm(mean=1.6, 5000) 4 |$ e/ }! C# _/ H4 E5 J( X" c% \1 n
( h* k4 j2 v" H* C7 S# Make the plot
+ U6 K* x2 ~$ {2 }3 G1 S6 l7 Hbin<-hexbin(x, y, xbins=40)
2 Q1 {+ {) H2 y1 X7 R2 h& M5 Q% ^my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))3 ?: p; S# g4 C
plot(bin, main="" , colramp=my_colors , legend=F )
, W; J5 P' v1 `![]()
" d4 f- X9 d! B/ |5 y5 i2 O
) e; l. e( y% F& Q6 }4 A. w6 y$ z0 c' K! B$ ~5 |2 Y
|
zan
|