- 在线时间
- 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图的绘图代码。
" U* f( y4 h/ [; y
: t0 ~: m$ N, _' C! b! I0 ^R语言|绘制二维直方图
/ p& C9 e) d9 R* S5 {( _9 k/ a对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
/ U7 G* D7 l) {$ T' z$ m% l" `9 H* ?9 z2 L9 ~6 o
1.先绘制基础的散点图;* b$ J2 A6 |" t7 Q+ }$ G
##二维直方图( l1 `# D1 w( e' e. N0 [" L7 f& L/ v
# Library
5 @; t6 u U6 T" m" ]library(tidyverse)$ ~" {& p& p# D% s& J) G
library(ggplot2)7 T+ r$ r& e3 R% d
* `4 o% Q; V/ O1 H4 r3 a% f7 G* n# 读取数据+ R+ [0 ~! B3 O7 j
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
: S& [2 X: A7 l) t2 vb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ), @& l4 ^: e; l: r- ^
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )3 F4 Q5 c9 [, S6 m
data <- rbind(a,b,c)' Y0 _1 d) ~* g$ ?4 Y9 K
# `* a9 @2 B# J$ q2 W7 d9 }3 ~#绘制基础的散点图
+ H8 L" T: {1 E, a5 \0 dggplot(data, aes(x=x, y=y) ) +
0 U% `. s0 |5 K" P/ p geom_point()
u9 G8 i: n( W
( u" _0 m1 @ S5 T( i 7 [# Y3 _" f; B8 X! f, E8 C8 D4 O
: |% V: p1 r6 n+ |" \
2.绘制二维直方图。+ D ?" o# h- r G' u
####二维直方图可使用geom_bin2d()函数绘制
3 H3 h$ O: R& q, v#二维直方图默认选项
! y* F; J! |7 Zggplot(data, aes(x=x, y=y) ) +1 C- q" d ~, l! C
geom_bin2d() +( ~8 [) u( t. s) A
theme_bw()
6 H2 P2 K6 F8 R. _3 J4 |$ u+ j1 M/ @, ^3 w- n1 i4 W4 m
# Bin大小控制与调色板
+ I0 ]- W1 u9 j4 Kggplot(data, aes(x=x, y=y) ) +
2 }5 w5 |7 {* l. n. @) }. ` geom_bin2d(bins = 70) +' d5 e' H; ?' ]
scale_fill_continuous(type = "viridis") +* E; ?$ b3 } X' q" l' i
theme_bw()
! ]2 U+ Z: K# B4 ?5 R5 {2 H& w9 t![]()
. J4 Q. i# B- D4 L2 W
* @* S/ g8 t7 }3 H5 fR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 3 F, x# q+ W, X' ]# I9 Y+ Q% `
# Packages
- g$ ~8 O9 q% ]# q! k; {library(hexbin)3 J. G0 ~5 i* v: `/ H
library(RColorBrewer) & N3 w; F* A" R0 t( R/ D( G: @
8 j' g- c8 M: H, _* M* ~
# Create data
, G: \. ]5 H. I5 Ux <- rnorm(mean=1.5, 5000)8 d" _; m4 Z7 t9 ~2 C) t
y <- rnorm(mean=1.6, 5000) # z: p. [1 S9 }; n% s& h
1 j! U# t( n( c6 Q# Make the plot
! S8 e3 Y! Y8 y# Z# M1 Xbin<-hexbin(x, y, xbins=40)
- o' o5 K( ]5 b' S1 r& Bmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))8 }. d8 W+ I: o; N+ a! L" i! J
plot(bin, main="" , colramp=my_colors , legend=F ) 3 u7 W! K9 B' D
![]()
8 `9 ^2 t O- {6 z. ~; `
0 W% X, i) W; h4 i9 I$ b
! H# l7 q" R! X3 t+ L% H0 d* l |
zan
|