- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40214 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12775
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。 S/ ^4 a$ r/ s; c3 J
! g1 A& `- X) ]$ P
R语言|绘制二维直方图
7 e$ X3 l; ~4 t9 y$ w. m- c* U对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
8 L" @+ ~: |; ~& ^9 H/ t t% N( ~7 |3 j+ l; D6 F* f1 U
1.先绘制基础的散点图;2 m' a i4 T; Y8 d; h
##二维直方图
/ p3 I# M" m& u5 A: c# Library8 _9 S# j$ k m9 }
library(tidyverse)6 M$ U% g9 k% `2 O# X! x
library(ggplot2)
- f6 m* \1 E& d q
$ p" q7 W# D! v: R0 c# 读取数据: I. H6 Z7 P. A& u# x# m
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )* Y; w0 g& G! z7 C) a/ v' b
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )' k; q r5 T9 G+ o" Z9 B
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
* a4 k+ Q! g4 n7 @2 `data <- rbind(a,b,c)
$ [2 P+ \6 M! g% G; S; A
. p" r- D/ L, T" t* Q#绘制基础的散点图" e, X2 E5 Q, @7 r0 v$ ?3 F# U
ggplot(data, aes(x=x, y=y) ) +' i7 f$ p; Z4 A" g8 ]0 k* s1 E% W
geom_point()
" G% p# V" y* V, K& `5 Q& T/ f
7 C% r- x& @$ X% ?+ C+ M / [: X$ J p! p6 V' }2 L
8 Y6 R* U0 q7 \9 e [$ ], \
2.绘制二维直方图。
+ E. F* z. f1 I' [####二维直方图可使用geom_bin2d()函数绘制( W- P$ [; h I- R
#二维直方图默认选项% {' {! @5 P. X/ p; N$ u7 w! B, W$ d
ggplot(data, aes(x=x, y=y) ) +
2 ?2 A9 @7 Q* D geom_bin2d() +
; g+ T0 ^3 n/ q% S! ^ theme_bw()
- x' z& k5 ^6 d* r4 }6 f" \) `, P9 x9 e
# Bin大小控制与调色板
" a- D4 t+ z. N! G1 k2 f) ?ggplot(data, aes(x=x, y=y) ) +
3 j4 d! D: t( h$ K9 q! R geom_bin2d(bins = 70) +! n& |. |4 u3 `- f% z
scale_fill_continuous(type = "viridis") +
# { P7 S" @0 l0 n# V* L& G theme_bw()9 q& J4 v8 Z9 W' k
![]()
' {# A: r( i! F0 F
! ~) ^! n Z* m$ \ d/ m& bR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 % C. r, c; \ z# Y8 Y
# Packages* }" B S& k: b% e' |4 y
library(hexbin)$ y/ N$ I! I7 ]. H! B ^- v
library(RColorBrewer) " \( t" x8 D T$ t9 L; E( V7 d
3 N9 }- r; p- P6 a. _; W# Create data
% s: X- W) K8 Ox <- rnorm(mean=1.5, 5000)
$ {1 X% L5 o' ~1 F! by <- rnorm(mean=1.6, 5000) - N5 z1 U/ L( t) G
+ p* {( ~5 V" j$ D; P* _
# Make the plot0 O$ C4 I9 k1 c/ ?8 k
bin<-hexbin(x, y, xbins=40)
4 J- U, D7 a9 }+ r- q% f3 qmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))3 J% k7 i$ k$ Z0 w4 `
plot(bin, main="" , colramp=my_colors , legend=F )
" {6 l0 R8 q/ Z% c) B2 M+ r 0 E; x. H- H6 D& u* j3 t7 ^8 E' M
5 K0 _" ^, o5 N% h7 g' j- N" i' n9 u9 Z6 B s1 F. y
|
zan
|