- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40296 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12800
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。6 s9 c0 b+ W9 _9 H' y! X
: z; M+ V8 J; Q9 C3 X" @; R
R语言|绘制二维直方图" g) k0 a2 j8 a: O+ N V9 ?
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
) z3 q5 E; e: g Y; v$ D/ `# ?' @, E# c T6 G% P% a. f0 x/ I7 i
1.先绘制基础的散点图;
: n6 B1 h; c+ i( {' W##二维直方图3 u$ p& g; c7 N0 H7 f
# Library
! q" j4 [7 J- V7 b& k% L0 Ilibrary(tidyverse)1 o2 x# ^4 B' X- C- J p$ L
library(ggplot2)
3 h% f( \, I, S8 q/ h- L- o2 d/ {- }6 c4 ]& w+ B C) ^! Y
# 读取数据
- R4 | p2 m7 a9 B3 h6 f+ ta <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
@: q( l+ F9 I' e* T1 |( _/ kb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ): z- l/ J; J& h
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
- u8 ~# N) a" u4 Tdata <- rbind(a,b,c)5 b- s8 ^0 d% C) P
$ g6 C, f/ w& ]" q
#绘制基础的散点图
" u. h9 L( D. c m" S) Yggplot(data, aes(x=x, y=y) ) +7 A: o9 `9 c) w& G
geom_point()2 Y( t5 h! Q- M$ X1 m
0 t0 c' y, Y. o; `- A; R& j 0 G X- [& ~) Q: J
7 o; g# E5 ]! r) Z% V8 l2 ^1 Q6 c
2.绘制二维直方图。
6 \! v+ F- x1 P) f3 o####二维直方图可使用geom_bin2d()函数绘制" P% @3 n6 V) Q* ?0 _" d
#二维直方图默认选项
! V$ E: v, V. ?& Iggplot(data, aes(x=x, y=y) ) +3 R' U5 ~7 p6 e) p9 J' G2 y N7 I
geom_bin2d() +
( P( H& n/ X! b) Q3 O! N& d theme_bw()" p/ P3 w" j7 P
& c3 f) t0 W2 c) F( m5 h8 l
# Bin大小控制与调色板
" l) E+ S4 q8 c& Oggplot(data, aes(x=x, y=y) ) +
8 ?9 f* E0 |+ k geom_bin2d(bins = 70) +! A( I/ H# j& F- K" j* T! k
scale_fill_continuous(type = "viridis") +
. H; N7 V3 G- U- }9 x theme_bw()
, v+ T5 Z: Y8 H+ `4 L![]()
; x' h: ]; T7 J2 n% F
* o! e! U) |: |8 |R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
- I/ L; R) w. Y0 Z, E' J* `, G# Packages
1 x" m- n. v/ N" V% ^! h* T' `! flibrary(hexbin)% i9 X. s5 U K$ U7 |0 I
library(RColorBrewer)
" @( I$ x* C7 R, k
! G* N# U' y0 ~# D% Z2 ]$ [! K# Create data
9 ~+ Z7 K: J0 R r+ K! C' v) x0 ]1 X. Kx <- rnorm(mean=1.5, 5000)$ f, ^; K2 d0 A" d& i8 S
y <- rnorm(mean=1.6, 5000)
7 w! ~4 l2 V& c2 U. {9 ` P& w0 C. e! x1 I7 u" h; ~
# Make the plot
0 u$ k( \3 }* i2 T; i2 y( ]bin<-hexbin(x, y, xbins=40)( ?& P- }1 r0 D$ Z6 d- J: R5 X4 R
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
' N) \. P6 O- \1 nplot(bin, main="" , colramp=my_colors , legend=F )
' i% ^8 L; J: _& \ ' b6 j' d! S& |: g' k
' ?/ V8 A2 d, F: V# ~5 s% _# M
8 I0 i- T1 A, l$ A( @
|
zan
|