- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40325 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12809
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。7 ~7 f* s. `6 g, ~3 L. S
& o3 P- ]3 U. L; s" q
R语言|绘制二维直方图2 G% c4 t$ j6 k0 B0 B
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。: [2 Y' ]' T) Q- m, r% |; [
. H; m5 K4 I( J1.先绘制基础的散点图;; |% p9 c/ \2 ?! P% H3 e/ b
##二维直方图
+ R7 N. i) n& [( d) C# Library
+ Y" |; r0 y& B4 S3 Alibrary(tidyverse)
# M' |: A% w# |! N+ |; Plibrary(ggplot2). }1 \, W2 L( T! T: e
% ~$ o0 Z; F8 V" K j1 ~4 a7 k# 读取数据
) ^0 G/ s! {; j: ]! X3 ?% Da <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
$ | F3 o7 S5 m$ \0 Zb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
5 A- s3 i6 V% a1 @# L& Uc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
6 l8 T: Z- ~+ z3 }4 adata <- rbind(a,b,c)9 Y9 G/ L: }! x. h1 o- s% _9 \
, y+ k5 Z3 j( r4 m" W" s6 ~#绘制基础的散点图' f7 Z2 u( E/ F7 Q, D5 n
ggplot(data, aes(x=x, y=y) ) +
1 U9 ]( Q. g1 b0 x! ~+ X/ Q geom_point(), d1 ^4 y( r5 a5 P4 N$ @* G
4 H3 O0 c- a7 s- X3 i0 u
![]()
- ~, [. m. p. d* Q. G# H
( ^, I2 l: ?2 E" M1 h; Z1 ~2.绘制二维直方图。
; w l3 W. f* `####二维直方图可使用geom_bin2d()函数绘制
. k( I/ ~) V& u! o3 E0 |#二维直方图默认选项
0 m0 f3 |, F6 [9 x0 l/ K: wggplot(data, aes(x=x, y=y) ) +
2 U( e3 Q0 w1 M( ?- F geom_bin2d() +
* A1 v. | O+ J3 \0 d% E9 [ theme_bw()
; V1 U8 q) J1 k c9 u
) ?/ Q+ Q2 o9 g& ? x. i& F% q# Q# Bin大小控制与调色板
5 ^9 p m$ Z: y+ ?- Fggplot(data, aes(x=x, y=y) ) +
( a* K4 o9 q3 c geom_bin2d(bins = 70) ++ O: L) N; k0 X: R& z1 l4 n. f9 {' x
scale_fill_continuous(type = "viridis") +
. C4 X: K$ b1 S( ?" P theme_bw()
: g o, Y' s. ]# m" C8 `![]()
* h. z- G B/ B! ]: ^& I$ g6 i" l) q& I1 u, i
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 ' z) I4 l1 n% k& u R5 I9 L
# Packages
2 i' b1 e% m" ] A/ `library(hexbin)
% b, e! ]8 a. O! A$ [ l& nlibrary(RColorBrewer)
: b" F* n0 N5 F/ M: f( w& I. R L( L2 o& o; s9 o( ^8 C
# Create data
3 R* A/ e% [* W1 Sx <- rnorm(mean=1.5, 5000)
! t+ p2 ^, m, z) ty <- rnorm(mean=1.6, 5000)
! Q n$ y' X- ~) `9 p' E0 x$ v4 R8 b% j8 o( E1 y# w( ]& A) q+ M) h
# Make the plot6 |5 f. w1 i4 a& P1 I9 \( a
bin<-hexbin(x, y, xbins=40)) W* g/ n! [, t8 T+ C" ^1 L0 k
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
& l: Q9 r$ m( n0 z( {" i8 }plot(bin, main="" , colramp=my_colors , legend=F ) 8 Y, U3 V* j6 r* K9 R6 H* K" p. o
! s8 h, ~0 c$ @7 S. j f2 P. z
* c5 b! N* `8 t' s
; q. {7 p' |0 E: Q! s |
zan
|