- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40279 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12795
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
, P* d( a/ u! m y7 Q' u
" e; w/ ]+ }$ y: E. @& VR语言|绘制二维直方图! I+ }2 d; E# ?5 `: t5 l
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
/ v2 n! h7 h) \2 n: }
% [' l+ [4 U- I8 C r! z8 W9 J# U4 L- A" i1.先绘制基础的散点图;& P! d* M- t: V# G8 o+ R
##二维直方图 V' W1 G7 W. M2 b! G$ t" s
# Library9 u9 y' i/ v' ~$ g6 e3 }: c
library(tidyverse)9 A: o: P/ L7 r+ ?
library(ggplot2)" U2 \8 N5 {0 I- E3 h* d
8 N B1 s4 d: Z8 Z1 ]$ g" _/ D& _
# 读取数据
& i& w" W: U* `a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )& g; m! b+ Z8 Q# I
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )/ j$ P4 a6 G9 S% i |
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
8 g# @$ z/ G l& mdata <- rbind(a,b,c)" C6 _' G M5 g! h6 u
# A4 @2 `, x! I5 f# ?4 ^. B
#绘制基础的散点图) ?% L! o8 j/ q! t
ggplot(data, aes(x=x, y=y) ) +% k1 M6 a0 ]5 {& F8 H N/ T- R
geom_point()
# [3 L! F5 J9 F; b; c" s8 ]6 C* j8 p! B) D! v' T) @
![]()
+ Q4 Y( t0 ?) b0 o& }( a) N& W+ `* ?8 ~$ a- b4 L: H
2.绘制二维直方图。; z+ y7 {2 K$ r8 ^/ E
####二维直方图可使用geom_bin2d()函数绘制
/ U8 a# r3 x1 j+ P#二维直方图默认选项
7 ~9 @# T# A7 iggplot(data, aes(x=x, y=y) ) +
7 S4 ]4 v0 O4 t geom_bin2d() +
4 U- W k3 i- E4 ^ theme_bw()/ J; a$ b- d2 `5 x' u! v5 G
# }4 _ l& ], n) C5 y
# Bin大小控制与调色板& D$ H; K% M' D$ t
ggplot(data, aes(x=x, y=y) ) +
: j! g, F: m8 ^. n# e, C* l geom_bin2d(bins = 70) +; @: M% k H6 o# P; o
scale_fill_continuous(type = "viridis") +3 e5 i* C( u8 Y6 K: O {0 a6 v
theme_bw()
$ A8 L2 ^) ?9 E( K+ G8 X![]()
& }# Q; W; K5 }7 Q9 F) z |
# n% N2 g! U* _ kR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
5 N( j. L! P8 u1 A2 w% o5 Z# Packages
5 d& N% L1 l2 o+ R( }library(hexbin)
6 o+ X# @, g$ y0 Q# Olibrary(RColorBrewer)
- Z# H* n6 {. ^/ n/ D
! Y% L; z5 @ }: z7 H# Create data* d8 l& T6 r: c @( f9 F9 w
x <- rnorm(mean=1.5, 5000)
+ t! a7 a5 L' j7 J5 \$ Ny <- rnorm(mean=1.6, 5000) 1 m* @* X$ \3 L& K0 b$ x l
6 X" V5 |; \- g9 j. D7 Q
# Make the plot3 z% M/ |) Z( W/ A6 W @1 B/ I
bin<-hexbin(x, y, xbins=40)
8 |/ C6 o. J# cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))4 d6 K( E8 w w4 u8 r
plot(bin, main="" , colramp=my_colors , legend=F ) & l# J+ s, O: n
![]()
2 I+ D) C X: E& u: T' o' Q6 y/ `* ]* y w
% m- M+ t& v8 I9 ]' L" {2 Q% d
|
zan
|