- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40215 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12776
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
0 a2 T6 [0 R6 O' b* R0 T) h! a4 Y
/ {5 S2 j; m, T. jR语言|绘制二维直方图5 M/ Y' f4 F7 S0 A
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。0 [& H. Z/ m7 O- u- T$ t
/ X. s& b$ C/ U
1.先绘制基础的散点图;
8 \' U' O5 I; V& A" p- b##二维直方图+ _* b$ G+ Z' M7 m% M
# Library2 P+ Q! [: `! y1 P) f
library(tidyverse)
: V: u- G$ q; Z2 \: [$ ]% Elibrary(ggplot2)
8 m, k% S( i7 X: j+ R7 y+ V" v, K& y8 W) H4 F4 [
# 读取数据0 u. c5 [6 r {+ A; B
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )* q) o9 C- z! @, D6 d
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )7 z( ^, K, ~8 L0 i" k4 G
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )+ [+ Q& A, e2 l$ }' {
data <- rbind(a,b,c)1 A2 K- k: E% v
; F. U& |7 f& z0 ?% h+ t#绘制基础的散点图
% [2 o6 P, h" i0 K3 w+ ?ggplot(data, aes(x=x, y=y) ) +
! X% ?8 m( I) D3 C0 W$ v" z geom_point(): Z' i. c1 l) l" X; Q: j
5 h4 ^2 B1 r2 z* o" o1 x
![]()
8 n; ?, u' \" B3 B
4 q# f4 u& n' }; y- P2.绘制二维直方图。: X$ k7 n) u" Y* Y; _1 k
####二维直方图可使用geom_bin2d()函数绘制
9 `" Z Q$ } K1 G8 u( O2 Z#二维直方图默认选项) Y. P6 Y. k z' P4 d6 R
ggplot(data, aes(x=x, y=y) ) +
, S8 m* _$ N' N4 A0 Q- |% e; w. c geom_bin2d() +5 w, O: q8 D5 t4 ~8 m3 J4 _6 i9 E
theme_bw()# X8 U9 Z. j) i
2 D8 k" ?; J( x5 ^9 J
# Bin大小控制与调色板
3 M" T( h/ T% h% f( oggplot(data, aes(x=x, y=y) ) +
% B3 h2 y4 ]7 o" x5 t5 C( P$ ` geom_bin2d(bins = 70) +
. A* T' s1 V! {1 }; ?4 y* M$ j scale_fill_continuous(type = "viridis") +- n, A1 f K. y# N# U
theme_bw()
: V5 D7 k1 i6 E: ` ( x. W7 D% P- I9 u
T3 U% ~9 m D% s/ [. @# ?+ NR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 / W, e" r% S. q2 P, w* q$ A
# Packages, W; Q- Z9 C( R! q0 i' @4 P/ A
library(hexbin)
, ]1 g- R$ W! V! Tlibrary(RColorBrewer)
n" H3 m ?9 g: `
h& r) ^4 }; F3 l+ X# Create data9 u; V5 c5 U% _% Y1 k- y' m
x <- rnorm(mean=1.5, 5000)9 b: Z/ Z- N8 ~& H2 P
y <- rnorm(mean=1.6, 5000)
9 \1 B) `% I: \" f3 }) E1 h/ E! r' Y0 b( E% _
# Make the plot: _" ^2 u2 V9 W0 A9 T" V6 `, j
bin<-hexbin(x, y, xbins=40)- Y% D6 E7 H1 ~% X) F
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
$ b* U0 v- B0 S# p3 f& Rplot(bin, main="" , colramp=my_colors , legend=F ) # s9 x, O: Z. d' w5 y4 W1 _) R6 C
![]()
2 n4 p4 Q# P! t( d) f8 T
0 ^. W' L+ x5 S v9 I
1 C! \5 U" e- L- @: [- W |
zan
|