- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40243 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12784
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。+ a/ W7 P C2 m" w" j
& f1 e! D5 c9 }( W; P( m: h( p" t' P
R语言|绘制二维直方图( y$ Y' D7 y# d7 G6 v0 X% k
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
5 d5 e5 h, d. t. t1 d; T! q/ Y# J5 B; g" W. F7 K& U8 B
1.先绘制基础的散点图;
d7 ]& j; e i##二维直方图
0 W) }+ u# F5 ]: M0 Q. {& @# Library2 b; O ?# f5 p6 z& A. o
library(tidyverse)
8 x. i$ E4 ^+ [! v+ i& tlibrary(ggplot2)
( l4 W3 x! L% x+ W/ J. g3 d8 ?) }, Z1 P, E2 s( }
# 读取数据
% A( X9 x4 I; p" q, Oa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )6 b5 Q9 P# b7 D& S$ V0 ]/ v+ `- x
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )1 _$ D( Q/ Q* f; N% ?3 W- `7 D
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
7 ^. f4 C' _' Q4 K# I) O3 S# rdata <- rbind(a,b,c)
, j. O. \' I1 X# ^, C9 h9 w% F! _% n4 [& G3 [
#绘制基础的散点图
7 }2 [1 t2 N( G- Jggplot(data, aes(x=x, y=y) ) +9 Z3 [9 |0 o; U) k) U
geom_point()& P+ @$ j# D* F4 q* s7 W
+ l2 r( p1 d. A0 k$ k
![]()
& R8 s, g) w2 t+ {
% }6 I8 E, R% u6 F( t; n6 F9 ?0 T2.绘制二维直方图。
" J9 Q" P( I0 w- X####二维直方图可使用geom_bin2d()函数绘制
2 d7 O7 v1 v" m' S6 E1 A1 I1 {#二维直方图默认选项
: { S, ^/ d; L. A" A# W7 X6 m( M+ ^; Qggplot(data, aes(x=x, y=y) ) +/ q. I( V% A% p8 X' j7 k
geom_bin2d() +
! u0 y/ M- v2 j theme_bw()! M3 K6 G r* X! B1 B7 s2 D0 x( B
3 J# g$ q# U D# Bin大小控制与调色板
- I/ Q' H7 M* Q" O1 A- K6 o8 S' hggplot(data, aes(x=x, y=y) ) +
7 H5 {+ \) L# j) M geom_bin2d(bins = 70) +
6 O7 u2 I& _0 J$ b% v scale_fill_continuous(type = "viridis") +# J8 h3 P& O' }
theme_bw()6 K3 a- J4 t! S. A$ u
![]()
% J( }8 {( R7 |1 ? ?- F$ Q* f* r& @! |
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 # U# u+ _0 V. q q0 p7 e/ y
# Packages
# ^+ L% [$ E4 k* qlibrary(hexbin)
. {. p+ |) z$ G. ?5 qlibrary(RColorBrewer)
- x: K7 O+ x9 v, C
4 ~2 S8 ]! @5 k% z# Create data) Z) n- z0 R( X' ]4 \* K" W) s1 {
x <- rnorm(mean=1.5, 5000)
" t! U2 T5 Z1 t( B$ W( }: m' j& iy <- rnorm(mean=1.6, 5000) V" ]7 y# {8 P2 }1 b5 j6 t6 l, w
; R0 N- b9 v: ~2 a- r. c4 a
# Make the plot
2 |2 s3 s# ]+ l0 r6 O3 Z) ~5 t3 `bin<-hexbin(x, y, xbins=40)
( q6 ]: O7 G; m0 @! f% i! W* Cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
0 ?2 X3 O- ^9 s! c3 \8 _1 o* c2 Iplot(bin, main="" , colramp=my_colors , legend=F ) ) O9 M+ A$ K. [! G" e; ^6 O
![]()
' V; _4 l; I+ z7 D5 t( G; e8 R1 P0 X
6 j. p" B2 ?; d7 }* D4 W |
zan
|