- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 39952 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12697
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。6 L( J5 ?1 t! R& j/ K% u( F- I
' d# N3 F( i7 {6 \# Y
R语言|绘制二维直方图/ h. @' z0 }, q
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。9 \( K; D5 w4 D
4 `. h% M/ X, Y0 V; s1 j9 u0 X* F1.先绘制基础的散点图;
+ a1 T' X" B3 D+ R+ u##二维直方图 v! s6 F" @1 p- S
# Library! Y7 V, J: Y: y& X! }" D
library(tidyverse)
/ F& ?5 I0 w2 [library(ggplot2)2 @% d& ~( C, i1 p0 r; W
% c- }6 y/ } r8 P
# 读取数据0 [; i9 { v, p" m8 Q; D. A) K
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )3 F: B" I. w. \1 U
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )$ e( V5 P* \$ c7 g7 W6 m
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
: t2 H0 ^0 H' |. ]* G1 tdata <- rbind(a,b,c)
0 c* J; d7 [* A3 N: k' d ]: _; D
& A5 T7 V7 I* r% R! d#绘制基础的散点图$ M( X! @ W" K4 N0 W7 j" _
ggplot(data, aes(x=x, y=y) ) +
1 E* ~: T+ @/ e: A5 } H6 {3 d5 C geom_point()
L4 G- p; j/ ^9 P
) s! Q4 V& X" J# s! g' G( U 2 O- B, \1 L. z& ]' L/ q: z' ^, }
* K4 M L- e% |$ f% @( J8 l" Z
2.绘制二维直方图。6 G% B2 t; F% X0 c+ l1 k C# x
####二维直方图可使用geom_bin2d()函数绘制) F7 O n; [9 W/ ^* D& O
#二维直方图默认选项4 R; s b' n; m7 j
ggplot(data, aes(x=x, y=y) ) +
$ _1 f( H: W% m3 ?5 Y" C% E geom_bin2d() +
+ V3 f% E- x0 d7 \# n, r5 z: J theme_bw()
9 g8 o9 `% R$ K e; i6 k/ N7 }5 p! x& S4 d
# Bin大小控制与调色板' [7 h7 }/ k# I( f; Z G6 g8 T
ggplot(data, aes(x=x, y=y) ) +& C8 \" y7 [6 }+ Q/ D8 w
geom_bin2d(bins = 70) +
* E, e* N3 ~2 j; X1 |8 ~* ^* r& U scale_fill_continuous(type = "viridis") +
; Z8 t9 z0 [# S0 v theme_bw()9 l, R* t* D9 `" `# D0 Y
![]()
% E/ p( ]' I( ^" [* @$ k0 l* o& a( O: g& z# n
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 4 i/ m8 }4 Z& S) A3 X; A3 k
# Packages! `$ X; y& f ]- F3 J1 x8 h& o- e9 l
library(hexbin)
7 L8 a/ e. F9 L _3 Y" _library(RColorBrewer) % K9 X* |9 b( o. v
' v1 z' T) H6 ^- l# Create data
& S+ M( v# [6 u" Z7 ~: x9 h1 Px <- rnorm(mean=1.5, 5000)" A& @- E; E% B+ F
y <- rnorm(mean=1.6, 5000) 5 y1 J* Q4 ~3 a) _0 w! Q# ^5 Q) K
& X6 J' U5 S2 s) H# J
# Make the plot8 Q% d2 p6 K, X7 |4 G* _. A* J
bin<-hexbin(x, y, xbins=40)
. f8 x9 P* J7 ]* amy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))1 H/ K! c* C1 P$ n
plot(bin, main="" , colramp=my_colors , legend=F )
- {/ D: ]: x1 Z5 B! e/ x1 e![]()
% t2 e V( y/ {
" O8 P3 B9 V; p; e. j% z
; l, V8 g& ?: w0 D6 k |
zan
|