- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40215 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12776
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
) L4 {1 c+ h3 i7 X6 |$ C2 N8 [9 h! `- ^9 I0 y
R语言|绘制二维直方图" g% E; d! O) m' D& e* [3 f
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
: v1 H6 G Y/ l( Y# N1 a- s5 {3 x0 }5 Y
1.先绘制基础的散点图;
( ^% ]; }% d8 y! g3 _5 S! E##二维直方图2 m5 _4 J+ d8 P0 L
# Library1 E& Y% ] z7 Q5 k: {5 s
library(tidyverse) j- k. I4 H' A* |
library(ggplot2)2 Y- t" n2 N5 Y' w' W' d6 V
7 t$ C% l: O0 `* m# 读取数据
/ q- _% N3 b- K z0 w2 {- G- ]a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )9 h8 Q- [# l0 d
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )( _/ i$ R3 m8 ^0 k; u; S
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) ). ?: c! u% @6 }4 m" g
data <- rbind(a,b,c)
. @, N0 R. I1 G ^ `4 \4 L, o- W
5 A+ S, z3 t- N#绘制基础的散点图& J# q& H- N+ k% N# @$ W1 L& {# K; Q
ggplot(data, aes(x=x, y=y) ) +
( |& _4 \$ }' z: d3 H geom_point()
D# |1 G* ~" C, _$ O( e ~
- [8 v0 s( B# w: ^* L ; I1 y' a2 p8 J* K# Q
( w& X' [# q" \% Z' [8 n5 l) }2.绘制二维直方图。
6 ~/ {: }1 @) a0 {3 N####二维直方图可使用geom_bin2d()函数绘制
; E2 }$ R# j, l: G' f2 @% |# V#二维直方图默认选项5 `) T' G3 X% Q. \
ggplot(data, aes(x=x, y=y) ) +
Q1 m& a+ k/ t8 j4 d; m geom_bin2d() +) D6 T# c. O# a; @! i: y
theme_bw()' M8 N; ?! O" ?9 a7 j5 O! {2 p8 F. I
7 w$ O( v" o% z. a* S/ P5 [
# Bin大小控制与调色板- F& ^( m/ E% E% e6 u$ s
ggplot(data, aes(x=x, y=y) ) +
/ ~) \& g0 v# y geom_bin2d(bins = 70) +8 m; z4 O: m$ g4 s0 b n
scale_fill_continuous(type = "viridis") +9 E! ^$ L- b: U, u7 d
theme_bw(): [8 f h) K% L& f3 x
![]()
; C- M& |* z2 P' L4 P3 z) ^* F( z' m! g1 M0 ]
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 + L. C5 z8 V) j8 R. F
# Packages8 v% L; a( C) Z0 L4 u R2 B; H
library(hexbin): p0 v7 c: w+ D
library(RColorBrewer)
6 h8 U" Q6 g7 o; J% m( S6 q
( A+ x- J/ G( P8 J7 T0 X/ Q& [3 |# Create data
! r3 S! ?( Y5 I- P$ i: zx <- rnorm(mean=1.5, 5000)3 ?$ L4 l ? g- G/ q$ G$ x0 G0 q
y <- rnorm(mean=1.6, 5000)
( e" |8 w1 l8 p) y O
+ r3 p. p. _ \ d0 O" L7 _0 g# Make the plot" K' [& D6 a9 g( {! ^( G
bin<-hexbin(x, y, xbins=40)2 x- ]* i2 I/ K0 E# d
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
) [. ^; O) H) q3 A& Hplot(bin, main="" , colramp=my_colors , legend=F ) 4 X7 q: @, l9 I5 I. s8 |* ^
![]()
# x4 B8 \: |3 X5 y' @) } v3 b8 P8 u3 ]! K9 q U0 X5 ~6 r# s
! U4 {5 A/ b8 p* D' H6 V |
zan
|