- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40347 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12815
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
0 A' g9 }6 M8 k' d u: F2 i! O( \% n! s M
R语言|绘制二维直方图
( @9 r8 J- C6 z9 k$ d对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
. B: S$ u N1 s" C/ ?# j( R* `, R
1.先绘制基础的散点图;3 I- U3 Q% h$ ~3 T l9 V( @$ c
##二维直方图
# Y* C( H. a$ Y" ~' h) ]( Q# Library
; x2 l g) x& U( H6 T- j/ ~: Plibrary(tidyverse)
( M& L4 x: [# u$ l" S% I" Plibrary(ggplot2)
2 c# I$ O: q* t t8 f8 n5 ?
- f: s+ Q6 V* r f: u. E, }7 `# 读取数据$ v/ H7 ^" k5 ^! a3 y; o/ S4 i
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) ), G/ H( b2 K& z7 b* Q9 g# d. u4 ^
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
6 n0 n$ Y9 [+ Sc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )* s; m& W) g0 P* m, U) J& v$ Q
data <- rbind(a,b,c); X7 s( _+ x( S) I& n; A
! R* x9 H" P: F# R#绘制基础的散点图
3 c6 S, a! V8 k5 S- S' ^* Kggplot(data, aes(x=x, y=y) ) +
# l* ~: I8 _9 i; h1 ` geom_point()
! D1 z# h0 I: o# s) d6 M+ P; m3 G! X6 |, S- f- q+ Y& ~* q
) j$ ~% P2 W$ ?! j1 }5 h m1 E/ l% J
4 a1 N! p+ V) Y% q) ^- M; J" T8 @2.绘制二维直方图。7 r: E1 Y/ ?! [% W9 U% f
####二维直方图可使用geom_bin2d()函数绘制
% Z, P6 l t+ r$ V+ b7 K#二维直方图默认选项2 i1 u7 d: I4 g# S7 t; n- o9 S
ggplot(data, aes(x=x, y=y) ) +" f" @ N5 L% D* |( Z
geom_bin2d() +6 h- _+ q p) N) i# z1 n1 f- d4 ~! `
theme_bw(); Z% K1 a0 d! F8 h
* R7 u" f8 C Y$ o; C5 ?' X$ E# Bin大小控制与调色板
, P& n- {3 v1 e4 A7 w! L! P& Rggplot(data, aes(x=x, y=y) ) +8 z0 b4 X4 A8 m6 \$ J
geom_bin2d(bins = 70) +
/ H2 Q3 R# y- s scale_fill_continuous(type = "viridis") +( ]% H+ |3 N1 b3 b6 @
theme_bw()1 T7 x1 E) z$ C
" H1 m; S( r# E2 c7 J; z* I
% C! S3 h' G0 ~) n1 ?9 p3 ^
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 , q/ E* s% y7 L' D6 A: L7 c
# Packages
% }- C+ ?1 ]' {0 ?8 [) v' alibrary(hexbin)3 t5 M0 o8 j1 L0 Y" M
library(RColorBrewer)
+ h' `$ Z3 v9 S% o" t) s0 x3 } e/ a m# \+ J+ |' B% _6 E9 `
# Create data" [* O# ?' c. |/ ?
x <- rnorm(mean=1.5, 5000)6 e3 J" v! V$ A
y <- rnorm(mean=1.6, 5000) # [- ?; ^9 C i! i
4 ?# |- u# ] z9 B# Make the plot9 `2 g/ G5 q2 L$ `' _7 H8 T
bin<-hexbin(x, y, xbins=40)2 G5 t X4 c- g3 q5 R' `# n7 ^
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))), Q- L4 U( [2 V1 n
plot(bin, main="" , colramp=my_colors , legend=F ) 5 F; e: t" V* D6 q
# X6 |* G5 k) Q0 i. z
, p( v1 O+ Q0 q! x5 {
. f! c8 G6 W9 @( T9 K! N |
zan
|