- 在线时间
- 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图的绘图代码。
9 P# a( b) b2 m' E( v0 r9 ^) q: g. s; a" L0 C( |# y% Z9 ]
R语言|绘制二维直方图
- Z: e6 j5 Y* W0 X4 R对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
9 |2 M/ G. Q7 k+ S7 O. i
6 _2 {3 O# A/ W' o6 w" Q1 V1.先绘制基础的散点图;9 {3 z6 Y2 u7 z: n5 e o2 `6 t$ N2 {1 h7 i
##二维直方图/ j% v$ d& C2 \$ y5 n- \- m7 t
# Library5 t8 ?% }9 ^5 j5 @3 }
library(tidyverse)# I& {, @* e7 u5 G2 f+ e( P, c
library(ggplot2)
: O! N/ I; M* v) H$ B) W
% m9 s/ a5 n7 i* o @( t! a# 读取数据
1 k* U: C9 l5 G' i& {a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )+ b- K8 i0 M n6 @$ F
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
0 n# L8 P' p. B0 Vc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )( M# B2 B7 ^& [. X0 D3 }
data <- rbind(a,b,c)
3 R6 d& t8 d* c6 o8 J6 o& ]
; A& M0 e2 j% P7 m: A#绘制基础的散点图6 K/ x8 a9 Y' Y# Z' Z+ ^# d( O6 j B
ggplot(data, aes(x=x, y=y) ) +& b+ F# K+ I; e2 S
geom_point()4 K% c2 B# x* c$ z# ~
2 @' u! l T% l e/ f# s
* f5 L/ w" ^# U- k, \
7 g( c6 W% ^6 E& i. v& `' r$ N8 n
2.绘制二维直方图。
, q6 t$ ]2 B9 Z5 @####二维直方图可使用geom_bin2d()函数绘制
- c, k9 Q* n" _" L' O( e" D" q- J) g#二维直方图默认选项; @8 M( _6 ?: c# P
ggplot(data, aes(x=x, y=y) ) +1 n& U5 b: s1 d; {( i: \
geom_bin2d() +
g- ~4 F, h2 I: V: M theme_bw()( r( S6 J6 q1 e% _* D- U
. V3 R/ [6 |2 T3 V0 M# Bin大小控制与调色板
: r8 _8 C0 b- E/ O& t8 Bggplot(data, aes(x=x, y=y) ) +
2 ]; y( i+ X6 ~9 [4 x geom_bin2d(bins = 70) +
x% o2 q" [. S0 A5 x* e scale_fill_continuous(type = "viridis") +
- p( Z* k" K/ g4 N theme_bw()
2 [' u# x: i9 y. s- b, R: S![]()
* ^+ W3 V5 X C; h( a/ |7 D
0 g+ z1 W2 Z9 d4 GR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 - ?& n/ E. Y8 R8 f9 H2 M: P
# Packages* B0 v( @, P* G! X6 ]6 ~/ ~1 H; T! T
library(hexbin)
0 z1 A" b: C2 s. ulibrary(RColorBrewer)
7 T0 H6 ]% w: I) L1 E* @3 c
( ], m: y! V" C/ V, X# Create data
/ {6 x0 l9 F7 [$ H6 ~x <- rnorm(mean=1.5, 5000)
- k2 M6 K) G. ky <- rnorm(mean=1.6, 5000)
; Q/ [$ U4 x5 Q. W1 k( S/ ~7 e
: d( `/ ?6 T8 y5 Q& B1 O# Make the plot8 H+ c+ H8 C' u
bin<-hexbin(x, y, xbins=40)) @2 t* S& ^7 S- ~" k
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
* n# Y; l! t5 Iplot(bin, main="" , colramp=my_colors , legend=F )
% o4 o2 m( Z7 @7 N![]()
2 ~$ T3 s4 |: u! M$ |* U4 n! u N% U# d' d2 h* \- Z
( n* @; O, C% h! }7 J6 _ |
zan
|