- 在线时间
- 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图的绘图代码。
, u6 D5 l" W. S2 c2 {# v3 g4 o" q4 A6 Y
R语言|绘制二维直方图
( _6 \8 e* T; M1 W0 c9 P# n" B对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
2 d6 T1 N3 U3 J8 i) u. V9 Q, I3 c1 v& p. [
1.先绘制基础的散点图;
: u" U" I, i1 r- c##二维直方图
/ g1 w# m/ o5 r3 I, _- w# Library
& ?4 g+ F2 I) F8 ?: Qlibrary(tidyverse)) i; }. a4 O# M) a$ B4 x1 u
library(ggplot2)
" ^9 L# a- U& x" {/ { ~
/ w. a+ A- f: n+ U+ e- N: L2 ]# 读取数据
( H8 i$ x/ c# |# j/ c0 N T9 _/ T5 ~a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )0 q/ L( r0 Y; i& |) B, H+ U
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
& f, i5 J9 N. c& G9 hc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )( s! G$ ^. n: f) u: f+ ?* I9 p: M
data <- rbind(a,b,c)9 I: y/ b6 u2 v9 t) h% f2 L7 a
" `0 @8 x+ A0 b
#绘制基础的散点图4 ` D6 J7 `) V! G' r: f. i/ E
ggplot(data, aes(x=x, y=y) ) +
* \5 I# Y/ `/ j+ F4 E6 A geom_point()1 Q3 @6 \* E' x' Z" c, W$ M
z( M+ s4 `4 o( Y 3 F, e7 T2 n: E/ Z# @5 R O
( o% U$ {% y0 Z+ ]& o, l, O' d2.绘制二维直方图。
9 h8 N h0 R; F* z' H####二维直方图可使用geom_bin2d()函数绘制
8 M; H6 o4 ~4 U; u3 ~! { }9 ~#二维直方图默认选项
0 |/ B1 h% t1 d7 e. {1 p# gggplot(data, aes(x=x, y=y) ) +3 ]& \- v1 s7 t; n% r
geom_bin2d() +
; v5 d' u* e; } ` ?" p8 ? theme_bw()% Z4 L: W; W7 n3 P- x2 E0 i
2 @/ Z, n. \$ P+ J0 [( v# Bin大小控制与调色板# G( [- x" }0 L' t% |! K; B
ggplot(data, aes(x=x, y=y) ) +1 ^( k$ \" l7 s: u9 {
geom_bin2d(bins = 70) +
+ Q; [' O8 \+ E scale_fill_continuous(type = "viridis") +4 t. U0 D' c; P; o6 j
theme_bw()
! Z& W) w$ E% {" c![]()
* K1 }9 u$ e! V; M3 a$ n
! y- a7 q: Q5 f; u3 q% w$ M& aR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
# U: F! V# \& f, o# Packages
" @+ h3 N# k. c& b" U6 flibrary(hexbin)- K% u1 B! Z# v' B6 q
library(RColorBrewer)
m7 A8 a5 B6 i9 N4 \% s. d: }/ Z) Q% C; F2 ?7 f: L. Q; r( z
# Create data
- a' v% G! n$ Y$ W) J4 k; e1 [x <- rnorm(mean=1.5, 5000)
) Q9 {, q3 F* ?* h2 n' qy <- rnorm(mean=1.6, 5000) ; h: G- y7 F H: m' o5 c
* i1 J) k6 k: ^; `; r* D+ [# Make the plot/ r: s o# K% ]2 K
bin<-hexbin(x, y, xbins=40)
' x# ~# \ C/ W( f' F2 j( nmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
2 X+ D# J0 f% K$ W$ i! splot(bin, main="" , colramp=my_colors , legend=F )
: ~! c& [) }' X" ]. M * y8 D' O/ L* q7 }& z$ l9 N
m( ~( u! X2 o0 z+ Q! X" V# R
& v; n; @6 }' }) s! H- _
|
zan
|