- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40222 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12778
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
4 x0 r) n' {& @0 A- S# z0 H# b( T3 z( ^
2 w% k+ ~% X2 t: f# m# ^/ j& HR语言|绘制二维直方图! y Y" t2 a5 u
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。$ }( j/ k# |1 i6 Z* y$ `5 P
* f# \7 k' ~& h' U1.先绘制基础的散点图;8 H) I3 M6 {3 l0 {: R0 y3 P& a- Y
##二维直方图
$ C+ @( q# J9 g/ ?* _ ~) Q# Library0 J: B: H- n& z8 U3 O( K& \8 J
library(tidyverse)
7 }) H9 n, {# z/ o( W, Clibrary(ggplot2)
6 Q- t+ {3 d0 p# E# Q
" v: t/ W0 U4 R. K3 a# 读取数据
; Z" W( X" f+ g2 n0 A8 U4 L1 J9 J4 Ka <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
* q8 ]- q# l9 J5 c) Qb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
9 L' V" [+ J% L* [% ]$ jc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )! Y: b5 S. D+ d C" G& Q/ a
data <- rbind(a,b,c) [2 i2 ?3 \2 x) j
! s* T5 n! F X. K
#绘制基础的散点图/ r; O: q2 V/ v3 e4 \6 Q
ggplot(data, aes(x=x, y=y) ) +* l% F. q. W, I/ G/ |' Y1 _
geom_point()
. r' h2 b3 ~ s/ O! q' I, d) R
6 G- x: v. S K$ y+ U5 o! z # z* o, ~& m4 S9 B
- t& e9 w4 L( Z& m% A; ?
2.绘制二维直方图。+ y0 i- S; F- M! A- R2 r0 h
####二维直方图可使用geom_bin2d()函数绘制! ]3 F* x5 U1 o- X
#二维直方图默认选项" K: S5 z) A: Q+ A0 u6 ^/ q# {9 T
ggplot(data, aes(x=x, y=y) ) +4 Y7 [" S$ Q' e& _
geom_bin2d() +
7 _2 B' `+ d0 r! E theme_bw()
9 L4 r6 L' P6 u5 B/ v. ~) t x
) U/ R# b7 b% |/ ]# Bin大小控制与调色板: m3 C( J8 v# ], s: y7 w
ggplot(data, aes(x=x, y=y) ) +' I5 X- ]" \$ ]8 D/ Z& W
geom_bin2d(bins = 70) +
( M4 c2 T8 B2 a: T. ~3 V scale_fill_continuous(type = "viridis") +
5 g+ i) G' f5 k0 i% h4 B theme_bw()
7 m% E+ |/ E3 ~' J: m3 e4 O1 |![]()
1 `5 i, S9 B% n" H5 {& S( |9 y- T' x2 B- @5 [5 Y& r2 h
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
6 V. S. Y6 C9 x; Z( N# Packages
# Y1 _+ j! v& }, Q9 d9 r4 i4 @library(hexbin)$ D' A+ @& ^; L0 S. w
library(RColorBrewer) 3 H& Y; c) P+ H6 }4 Z* k
( k4 G( B9 s/ ^2 t
# Create data
4 A+ F4 K6 [5 v* }: @- t2 Xx <- rnorm(mean=1.5, 5000)
* b% [4 H$ `, a( ay <- rnorm(mean=1.6, 5000) & \" r1 x3 i5 i( ~. c
+ M! Z. m" Y; @: w7 o: _. [
# Make the plot
3 l' }1 A( P ~' \bin<-hexbin(x, y, xbins=40)
! d# a8 {& }3 h0 h8 r6 ?+ |2 smy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))); _ t* c. D3 S. b6 D
plot(bin, main="" , colramp=my_colors , legend=F ) - F$ ]" u3 i- H, k
![]()
) K% ~& ]+ t& m6 k6 y6 B9 X O8 ?8 V! |
; |, X" x$ F: ?0 v
|
zan
|