- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40356 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12818
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
2 U$ x+ \* p; H) H/ E, ^, i5 B
0 O/ l4 R* F9 q! s( ZR语言|绘制二维直方图4 z) P7 }* v; J7 }1 T( p; z
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。7 |+ g+ c8 p; }( f2 R+ _2 e
) ?% x& r& V/ ]; }$ ]6 r1.先绘制基础的散点图;: _& Q* P& {( F& w1 q! V
##二维直方图
0 r" u7 a& |) h0 ?8 f1 s+ {, ]# Library' e+ ?% y% f2 ]: Y2 m
library(tidyverse)
+ A: @8 L$ u6 J' p. rlibrary(ggplot2)- L( \5 Y, c) H3 n
% G! l! H" }7 ?# 读取数据0 m3 N. Q4 N* D* e
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )8 z; m; S1 `# V7 y7 x7 X
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )9 M, N! m( q$ s
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
, R4 }+ T1 R+ `2 C+ v4 e; udata <- rbind(a,b,c)
! |" `( z) `/ @) {; [0 \
! E7 {+ O5 ]% ?& b7 Z#绘制基础的散点图
, n e( |' p% ^" \ggplot(data, aes(x=x, y=y) ) +0 T7 z! n. G" |% ]( D
geom_point()
* O! s Q' r" \- w; r; I& d! i9 Q
& @( b+ E" Q+ b7 E1 c: q# {0 J![]()
0 U9 P1 M( I( T; T
! ?; b3 F4 Z9 W A. G7 u2.绘制二维直方图。1 z! t3 Q; |9 z: b4 k4 t7 M
####二维直方图可使用geom_bin2d()函数绘制/ T1 I' k8 f/ {* B" j) o
#二维直方图默认选项: y# M; d! L; x# k! O) P$ j
ggplot(data, aes(x=x, y=y) ) +& D$ r0 Q: U2 k
geom_bin2d() +
4 g. f5 I* A2 q3 R: { M* ] theme_bw(); V: S) o0 l1 p, r! j9 u6 f( g
) R" g0 F7 Z5 z9 n8 q# Bin大小控制与调色板
4 ]7 J7 P* `2 u0 r2 [ggplot(data, aes(x=x, y=y) ) +
, J2 M' c. L! u) R0 ?# o1 J geom_bin2d(bins = 70) +" ~/ k, f" W! |9 @ R! i* t, n
scale_fill_continuous(type = "viridis") +8 G# h9 ^! @( I* H) L* s% Y
theme_bw()1 P m; m4 z. M, P- ]3 t# L1 y
![]()
( L' k. w: m8 \: V+ S
. s' s$ _( |3 `0 IR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 7 F b F: p! \" s4 h/ i* j
# Packages
. T1 n. |1 x6 ^( klibrary(hexbin)
% P3 Z2 p, W# R. m: L5 \8 C1 Qlibrary(RColorBrewer) ! u# a2 f* |+ Q8 I" }1 {' q
2 G" W( {9 ~" L. M1 k
# Create data
' e) V/ e( i; B+ A/ n Jx <- rnorm(mean=1.5, 5000)7 A( I& A1 h0 ~* G" Q
y <- rnorm(mean=1.6, 5000) - K9 D, t m/ B5 W% Y! w2 ^
: @: q* Z; l0 n4 S$ t2 ]
# Make the plot( w) [+ h3 w! T; A9 r. r0 e& e
bin<-hexbin(x, y, xbins=40)
$ i* a3 r! S% Q: d! X( imy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))& |7 ?0 F* D3 l$ Z0 Y1 I6 V$ B; F
plot(bin, main="" , colramp=my_colors , legend=F ) : @1 t$ x: c* O. L
5 W4 I9 H2 H6 T2 m
8 G: K6 h, y4 S0 N& t
4 q5 G1 _6 N7 ]- r! S |
zan
|