- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40296 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12800
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。* n0 t* v$ U+ U) Z3 Y
" i4 a* R# r/ n! m" g* w/ XR语言|绘制二维直方图+ X5 d3 s [- P/ w% K5 f
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。8 v- V, Z# R4 z
+ l1 z6 r' l6 m" S8 x
1.先绘制基础的散点图;
* W# T7 f% b& N+ l+ g##二维直方图
# A$ w1 d$ e4 O( z) O. W% e# Library+ e v9 o! G J* M. j
library(tidyverse)- Z+ `, Z* \; q+ L1 m- ?
library(ggplot2)
0 f" z+ O$ [/ ~
# D6 V' M1 H! K5 o& S8 u7 g# 读取数据, A, Z3 V* G. r$ T( J4 j
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )9 K4 Q3 u7 a' E7 `
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )1 G8 K7 \$ a" |& Y+ u
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )9 F9 ?! n9 C+ [5 {8 Z3 X
data <- rbind(a,b,c)
' N3 S9 |$ j5 E6 E6 k1 s4 j0 H8 [; @3 v I. w- V# C9 @
#绘制基础的散点图5 p r8 h3 g# \
ggplot(data, aes(x=x, y=y) ) +
* T6 a2 S5 [+ B. u* ~/ c geom_point()4 Y6 q F( O: X
4 R0 N( d t: T }, t2 y% X 3 o1 K8 ]" {! l" c2 H
8 h$ _3 n; ?/ S9 \2 V1 Q
2.绘制二维直方图。
/ } M2 R1 Y$ S r+ f####二维直方图可使用geom_bin2d()函数绘制8 R1 ^) v9 f( H5 `
#二维直方图默认选项
, @- I3 {4 v$ j& R7 Q) gggplot(data, aes(x=x, y=y) ) +3 X" `0 U. A, z$ F2 `$ K9 j' A0 e8 u
geom_bin2d() +
; x0 L9 _% V9 ] theme_bw()
# h2 X$ }+ S1 c/ f
- U5 T# l; {/ {- m- @# Bin大小控制与调色板) Y( y. }3 n, }& b5 Z" H; Y V
ggplot(data, aes(x=x, y=y) ) +5 J* h: d* \6 F1 R, a. E
geom_bin2d(bins = 70) +
+ ]. [" M; [* ]/ a1 k! ~2 t( O scale_fill_continuous(type = "viridis") +
: x2 c+ K$ `# `3 m: ` theme_bw(). q* [/ o: p3 y, V
![]()
5 u% } u8 M, g! j
" w; u+ s2 a9 E2 w5 z2 S9 f7 YR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 8 x. u3 }4 g$ s" K* l$ C, j
# Packages8 d* _/ R- V" a S4 P0 C9 P$ p- v
library(hexbin)) y: W/ M3 B! ?
library(RColorBrewer)
8 h3 o G* N1 ^, x1 Y- j q# C
/ U8 O! D" f) `/ d: n, f# Create data( k5 G8 c/ V+ V) U/ d3 P' _: w
x <- rnorm(mean=1.5, 5000)
5 A# I* ~# e- ?6 b' T' n3 fy <- rnorm(mean=1.6, 5000)
7 e9 D% `* f7 i' O
3 j' S; I8 g- p j# Make the plot
1 u: Z& w# P5 | `bin<-hexbin(x, y, xbins=40)$ p0 ^1 O5 g8 t7 x0 W$ p6 u2 D
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))8 m+ o# k% R% s, t
plot(bin, main="" , colramp=my_colors , legend=F )
- l* X, v) r F1 P# t/ S$ M( }& {; n ' V- A3 v/ y. g$ i
4 A S& M$ _" U' Y6 ?0 g. Z; Y" d
. l- b7 N. g& z |
zan
|