- 在线时间
- 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图的绘图代码。
+ Q- [+ Q( J9 v; Z+ [4 l; z
, R" L5 u* n1 PR语言|绘制二维直方图
\9 o2 [' `4 `( E2 k9 H对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
& `4 v; V4 f# u5 p; T2 C
2 i+ V9 q1 P2 @2 `5 [1.先绘制基础的散点图;0 ?: |# c$ Q! O1 N9 p" P! m. g
##二维直方图
) |, h1 W4 b, ~" P# Library: B5 Y: ?- s* S% b1 y% c d
library(tidyverse)
: I) P4 j( k6 ^2 a8 Q( p7 Wlibrary(ggplot2)
. O! S# p' r" `6 B& u/ j
) b0 M( J) \+ S2 F* C5 p3 V' t# 读取数据) v' _9 g( _! `3 l' N; ~6 W
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
4 g9 w H/ S* `1 t* J- ]% Rb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )9 m& s' \# L9 w$ O: Y
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )0 X0 x( k: E w
data <- rbind(a,b,c)
( A$ j' J E: l- e8 W
7 Y/ a' m4 b& F0 E( i#绘制基础的散点图
. d0 k, r# N6 N4 e8 Xggplot(data, aes(x=x, y=y) ) +
% j/ \( _% K' M# k% H3 G. N0 { geom_point()
: Z1 b- L" `; n0 C5 O; N# z$ o
* h" R$ t; @4 P![]()
. F' p% i, `% e1 y' M; r- s9 O6 @" |1 g: Y
2.绘制二维直方图。
$ V3 l, h4 C8 p: o: |; M####二维直方图可使用geom_bin2d()函数绘制
( |6 F" A. t; J3 e6 W/ `& ^#二维直方图默认选项$ |$ d0 ?+ @5 D9 V: I9 t$ X" ]: Y
ggplot(data, aes(x=x, y=y) ) +& ?9 Q3 j+ m: l) V% C/ H' Y4 S
geom_bin2d() +
. v" F4 x. m4 o, C theme_bw()# X B) O- h, B& Q9 Y& j
; Y) h) `5 [: x$ C2 z: z
# Bin大小控制与调色板3 w$ M2 M& r; m! z, V6 P/ \
ggplot(data, aes(x=x, y=y) ) +
1 A# I( R: r; Q$ \# J2 ~( x geom_bin2d(bins = 70) +9 K) p `; G6 } R# p @6 i
scale_fill_continuous(type = "viridis") +3 t0 [. i' N! s& m: r! f: V3 z. t- p
theme_bw()' C& J, @( v6 ]5 l. p
0 _" j; J" L* h) S0 |, D- K7 N
t4 z4 x" m' S& ER语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 9 M% L: @6 b0 L. |5 K
# Packages0 z9 M0 }+ D- @' M& e) ]- E% T
library(hexbin)2 @2 Q9 c% P- N( D0 G+ e* j
library(RColorBrewer)
% c& A0 H9 A: g
' T$ `5 @/ y. i! h7 D# Create data
. e( O K: G/ Z5 N$ m- Ux <- rnorm(mean=1.5, 5000)1 r( q0 y9 \/ F% f+ f c
y <- rnorm(mean=1.6, 5000) 6 P9 V6 Q5 Z$ v% p2 q5 @
& B; `7 Q C1 {) _( I
# Make the plot) J, K/ D* h6 K" ?
bin<-hexbin(x, y, xbins=40)
3 X1 c7 n) W0 Z( b# b/ o( B% |, t; omy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
2 ]5 W ?5 W! \plot(bin, main="" , colramp=my_colors , legend=F )
% R5 F6 n6 H C1 e% U![]()
0 Q( R9 y8 J' j$ {- o' q
6 Z7 q. B0 a4 r! i" y+ p) u: t) [) `' x
|
zan
|