- 在线时间
- 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图的绘图代码。- h& M% r6 r+ ?0 _* R
4 u5 U1 z( r# \: E
R语言|绘制二维直方图
# P. z/ A3 X9 o8 ]1 a* [7 k* R对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。- Q" F' h# o: O- q1 k
) K- H! i# y+ P' M7 P: ^4 w8 L
1.先绘制基础的散点图;
+ E% p+ p( `$ N9 D, v8 |##二维直方图3 p* i7 h8 g8 W7 a- u
# Library; h0 z! G2 C x* i8 s
library(tidyverse)$ H) D2 U6 z8 u# ?# y& r# k) n- d. D
library(ggplot2)
! {/ B4 l) \- _9 Q& A
+ `/ @2 [ T+ e6 t# 读取数据( ~4 i+ d! t" S% c# ?, y
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
. q+ e# `( p$ o( T! B+ `& @b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
4 E1 W% f3 z7 k7 \5 m: c9 Gc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
+ y2 u1 z9 p( Z* Mdata <- rbind(a,b,c)- _& j: S2 j" q
- d5 f- r; t8 l( M: ~, W- y
#绘制基础的散点图
# z) H7 b A# L& _. u1 |, k" aggplot(data, aes(x=x, y=y) ) +0 i" P: a4 J; w* X( e
geom_point()
T9 X1 W5 C, l4 c A8 ]& I3 `3 o; ~. c4 a5 X; q
& x- V: ?$ V0 P- u s- F! c O
1 R3 @& p [. [( i( z+ X
2.绘制二维直方图。
, g6 k7 K+ w- p: }( W& W####二维直方图可使用geom_bin2d()函数绘制4 C, N6 s2 Z0 O/ Q$ z
#二维直方图默认选项0 ^; Q8 I7 Z* U2 F9 `
ggplot(data, aes(x=x, y=y) ) +, b- z+ b: ^ m
geom_bin2d() +2 H8 ]$ C# ~& O! L
theme_bw()! c, C% ?3 o4 `2 H7 Q4 T- C& {
9 J/ k5 e7 Y6 u( _7 N# Bin大小控制与调色板) n( I# K( F! T8 e7 }
ggplot(data, aes(x=x, y=y) ) +
% J8 V# C( a- ?8 z' `: z8 u geom_bin2d(bins = 70) +# }; D* D0 v1 @' ]4 a; a
scale_fill_continuous(type = "viridis") +
$ ~2 @6 O* s" N; F- l4 _; B theme_bw()
# b8 L, E. _, n% `1 T* Z( V * [3 T/ R0 p- j4 f3 Y' v
+ k5 n0 x) T- `" m7 \( `R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
8 N8 a' i( n. d3 q0 e# Packages
7 j4 g# K0 k5 b# {' g' Q5 O1 C) ilibrary(hexbin)# z1 N6 Y+ Q, \% B. |0 ?: Q
library(RColorBrewer)
* i! q( y7 l9 G" |7 _! s
' p; I+ P6 h7 r0 |+ a; p2 ]5 L# Create data
+ U- Z7 d6 o4 v8 s2 Ox <- rnorm(mean=1.5, 5000)
2 y# W; j. Z5 j; @& |2 p( `y <- rnorm(mean=1.6, 5000)
; y* j, Y2 c+ T8 T# |; O" i( k% z, @7 `" m; r% [
# Make the plot
0 E3 f* z$ c2 ~9 i; [bin<-hexbin(x, y, xbins=40)" k( d" e* G/ m) G, y/ E. V3 j$ L
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))8 Y/ R$ m( x7 [
plot(bin, main="" , colramp=my_colors , legend=F )
/ k! s" a( @+ ^6 ^' R) f' f: \ m, [0 { j, F" S
* P* S- m* x, g( I3 B& L' x% L4 ^
3 E. \# \/ y: K, U
|
zan
|