- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40294 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12799
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
* V$ \$ o( L+ p4 ~6 }7 g! X' _4 ~. G: z. [. f
R语言|绘制二维直方图
0 g0 z0 i/ m& g9 t9 n" P! O: W: u对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
1 p3 z8 N2 y$ r% v$ ]' y
D$ K2 B+ x' G- e1.先绘制基础的散点图;
' K7 `! \9 \' ~. l3 x9 t##二维直方图6 Q% D4 ~: r, e7 U3 u1 ?
# Library
* ^8 n( c7 R; j% M4 O: Ulibrary(tidyverse)7 l* d4 k" M5 r$ \
library(ggplot2)7 H( ]+ g* e/ @
# h. s; `; S- C8 @* r+ g. U. S
# 读取数据* l1 C ~1 [: Z+ T0 C+ g& m( @
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )& M* D% H: u5 B, Q
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
3 m+ t0 O) ^8 ~/ ? k& b" |: @: yc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
" Y' @; k$ F; R8 W( V8 ndata <- rbind(a,b,c); B. ^4 J1 E/ u# J7 L
" [6 `* b# W p S3 }5 |#绘制基础的散点图6 d: l+ j! h) w9 N( {
ggplot(data, aes(x=x, y=y) ) +. d, m1 ] @' `1 {
geom_point()
+ y" f1 r" w) n, N( C) l; G8 C8 r
" f* k: }/ u" l/ b, d
8 m2 a, R+ s9 V1 Q5 f: p
2.绘制二维直方图。+ i% H n) E9 w* _4 Q/ x: Y# f
####二维直方图可使用geom_bin2d()函数绘制
$ Z8 T# H8 w. u N4 a#二维直方图默认选项, ^- w* P8 ^5 n
ggplot(data, aes(x=x, y=y) ) +- e7 N0 Y1 h/ h. Z, q
geom_bin2d() +
5 U. ^& I4 Z. G9 w4 l) N5 X theme_bw()1 s- e3 D' h! m
' K8 H4 E# h! M% ?$ C# h: e
# Bin大小控制与调色板
9 i5 M3 T( N0 ~& Q& ]$ f; \6 @5 C: Tggplot(data, aes(x=x, y=y) ) +
$ U2 A2 `: i% h8 g" x geom_bin2d(bins = 70) +
( H+ h% b) T& Y4 P. X scale_fill_continuous(type = "viridis") +
, N2 |. R9 T' P" h+ j/ ^# x; P2 a theme_bw()
$ r0 W/ V8 Z) g5 P![]()
+ R3 q' {" W" ~2 C" k9 ]4 D0 H' B$ x1 C2 K E2 ?& J
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 . l; i0 M+ _# e3 [9 }, U" B
# Packages
: ?: _0 S1 W5 e& v, Ulibrary(hexbin)) c& H; v) I/ }$ N
library(RColorBrewer) # M# I# e8 a1 b! a, c
. U1 x2 V' N1 X, m4 h I
# Create data& p2 {: e' O: K: K/ |) Y- h. d$ X
x <- rnorm(mean=1.5, 5000)* h; ^8 V+ k# ~6 z
y <- rnorm(mean=1.6, 5000)
& v: E | j0 i4 c- z6 c# t+ k
3 `1 g) G3 ^2 ^" d) [# Make the plot6 g% i% j) t; H0 J) y2 b+ L3 t
bin<-hexbin(x, y, xbins=40)) d! o% Q) t' M, c0 O
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))% A: i+ w* U2 u$ a, A0 Y
plot(bin, main="" , colramp=my_colors , legend=F )
9 [# S1 w5 e: V8 K9 D # ^/ M. o/ D M, B/ i: o+ O
) ?" V/ j' V* a# g4 _
' ^) \$ ]3 x) a. f* ?- R' k& J! w
|
zan
|