- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40215 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12776
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。/ T, X, B: ?, W7 L
$ L6 T9 W! ?1 g4 O, Y' q
R语言|绘制二维直方图/ g: B! t' S5 ]. G# B9 k# }
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。- Y H$ F# e4 S
$ M9 f4 L& E$ w0 c* V' C1.先绘制基础的散点图;9 w6 K6 j* O9 R% y2 D
##二维直方图
" b6 X3 ], G2 H* T4 z& B9 \# Library
( R( s+ q( s3 g3 @* y5 S( j) Nlibrary(tidyverse)
* S% a$ Q" z a( t0 h$ Wlibrary(ggplot2)
% O5 \5 E5 n% l2 K% t9 {$ a( O; R. t2 q+ P6 a1 h5 M0 a
# 读取数据% U, T9 D6 s, x' r; L
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
1 n" A6 G2 _$ r2 yb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
( O; m- {2 m; Qc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )" }8 s/ @9 v" k1 ?8 h
data <- rbind(a,b,c)
6 c* ~+ R0 F( U, ?, M5 E' U& j4 J6 n. D- P4 C/ n/ |
#绘制基础的散点图
8 m5 k7 H- e% X, M/ H9 V7 R1 O/ sggplot(data, aes(x=x, y=y) ) +
: ^7 z+ E, [/ p0 z5 }& \$ b geom_point()
9 J! M1 S! |8 j8 P3 q7 T
& n) {+ R+ e, L( M% S/ J![]()
2 g% d" ^5 A% ? k& B. v
0 u; j, g% _7 v5 E" ?, b2.绘制二维直方图。& F% c$ d) Y) i5 g* l+ }" J
####二维直方图可使用geom_bin2d()函数绘制% X7 k! H7 o1 u6 [1 U
#二维直方图默认选项8 @# v# [9 t7 x( s( S! G# i
ggplot(data, aes(x=x, y=y) ) +
9 k- N# g L% \7 t' ] geom_bin2d() +5 t1 Q6 L1 t7 \7 T; u( Y2 Z
theme_bw()
$ Q* m+ O6 h9 V/ I- y6 m2 T- v1 h x! o, n- W5 Q3 J# s3 B
# Bin大小控制与调色板
# y; B9 M9 ]- {. sggplot(data, aes(x=x, y=y) ) +$ N+ D: \7 o/ `
geom_bin2d(bins = 70) +
9 Y4 H* `, e& }1 m. v scale_fill_continuous(type = "viridis") +8 [' e/ W' L+ T a
theme_bw()
& f ?* o. N, v" P![]()
$ m1 u2 p" s) a% I) m/ j6 k3 A
; V7 p" e0 Y, K3 Y- @( x. s, f/ ^R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 : j$ t/ |# g* i5 z
# Packages$ Z/ F5 M( `# l9 T; g
library(hexbin)7 s: b1 _7 N: I: Y, B. h0 J/ B
library(RColorBrewer) 8 U) s/ p1 C- M. k6 T. k E8 y
( R- h; y3 t& d. c L
# Create data! |: N, ~3 @1 y/ i1 r
x <- rnorm(mean=1.5, 5000)
' u w% c/ Q- r# m7 Wy <- rnorm(mean=1.6, 5000) ) _8 u* e- r+ r4 P
- |& c3 |6 z) }
# Make the plot
! f( W2 c. X1 _5 k! ]# J1 jbin<-hexbin(x, y, xbins=40)
) v- P, f: u; \, Rmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))2 c S7 X; E% g0 z- ^
plot(bin, main="" , colramp=my_colors , legend=F ) ( V* {4 Z5 }' H; G% b
& t }& ]% p) @
! v4 J( _7 u& _4 c/ P& Y& T& {5 E! S. |" [ P8 u% d
|
zan
|