- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40027 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12719
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
2 ~+ I+ k( H% B9 q+ \$ G" e& s3 G( l/ ^
R语言|绘制二维直方图& [# ]! x' }0 F( v) c8 Q3 l- B0 W
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
, ~: z7 u7 Q; H( @+ n7 N( r
+ h! K" Y Z5 o7 f1 j2 u1 ^$ ^2 u1.先绘制基础的散点图;" z! `2 X; Z7 `- o# ^- T( y1 ~
##二维直方图; N3 w+ c5 j9 n. p, R- d
# Library, {3 `, @- b2 _0 P' W/ r1 W6 z
library(tidyverse)
! J9 }; z: h8 b( x Mlibrary(ggplot2) ]2 `; D4 k, X$ P& D0 @4 \
6 C e; Z, S8 Y# 读取数据
! k8 }4 T1 _4 l' @1 ia <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
, \# U7 a( ^) R( `/ vb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
8 i. j0 c. d" o2 H: qc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
5 [9 |! b: J6 Sdata <- rbind(a,b,c)% T! j: @3 z+ i& H4 v
1 Q$ @# g$ w5 h, z$ D, w1 h#绘制基础的散点图3 {3 Y3 K$ _! A! w
ggplot(data, aes(x=x, y=y) ) +1 \( m6 ^8 w+ o/ J3 a
geom_point()1 ^% K. P7 a0 E) ?* e/ W* k$ h
8 W) K U0 P0 `. _
![]()
' T% y, p$ @! r$ d" |( \7 c" J5 g# _% Y& g
2.绘制二维直方图。( k o/ N, g9 {4 s5 @
####二维直方图可使用geom_bin2d()函数绘制
6 O. o* o5 O- k( s* I$ H#二维直方图默认选项
' \. `" Y6 k6 l4 W, H! y( Xggplot(data, aes(x=x, y=y) ) +# i* w7 w2 L; M4 G" Q G3 }6 f
geom_bin2d() +: R$ @9 ]* @4 s# l M; ?
theme_bw()- P C6 s+ k9 H+ m" M3 k
# G+ l( N3 E, I# Bin大小控制与调色板- [8 n. Y# k2 k! q: W( a
ggplot(data, aes(x=x, y=y) ) +
5 o' R8 z; ^7 m geom_bin2d(bins = 70) +. y0 X7 P! a6 C5 o5 J
scale_fill_continuous(type = "viridis") +
7 r9 H' t' w& J7 j9 U theme_bw()2 x" F0 P6 J' Y" y& T$ f
![]()
) O0 X+ H5 |* A# E2 s1 A
* V' G) l: n! Q S$ DR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 ; R g! K& v. e6 ?
# Packages, @8 V: C# I* f: o* d
library(hexbin)
4 ~; B! ~, _$ Flibrary(RColorBrewer)
. q1 |" w* m1 [" x, Y% ^, d8 o: v1 C( T/ X; I0 x( ~# E$ [
# Create data
7 L+ d4 o! M x l2 s7 X7 }x <- rnorm(mean=1.5, 5000)
! V2 c% E% r# n5 vy <- rnorm(mean=1.6, 5000) 2 f7 }: D8 ~$ v2 e; h5 U$ s
: r! c( K$ c) R% F
# Make the plot
8 g6 ]5 [; y/ pbin<-hexbin(x, y, xbins=40)
$ Y9 G5 N: J) j& E& P; q, cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))- U1 p3 ?' `# ?2 i* X/ v" p% u: P
plot(bin, main="" , colramp=my_colors , legend=F )
# R6 J" o) c; h # E+ M/ ~7 |9 J) |/ g( o8 V
) c0 l, \* a9 q+ \
0 A0 m8 |& B& b$ v) {8 e9 B. V
|
zan
|