- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 40322 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12808
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1419
- 主题
- 1178
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
|---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
 |
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
# v& J6 M! i7 T7 ^) C. S9 ` X
! [, ~) A- ]4 j! P8 dR语言|绘制二维直方图
2 x; x" ~* l4 n* h4 F对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。: `/ L. v, ~6 u' {: ]( @! p
+ _, u; M$ h5 f( C' H6 z8 R1.先绘制基础的散点图;
+ ?# R0 |* t& N##二维直方图$ L) @& O# K2 D0 N2 @0 Q s
# Library
. h- R' ~$ l. V+ y, q J- F) slibrary(tidyverse)2 r, H" M/ ^- F) Q+ Y: [; c0 X
library(ggplot2) u2 Q" g- p. j0 t$ d! ^2 Q
" s G2 Z0 D4 N( I5 Z0 E) ^3 p# 读取数据" I3 _- T* h5 r
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
, y: v2 e( f$ h2 c) Ib <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )5 [* I" F4 Y+ B, I& _, {
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
1 p6 ~- x0 n9 M+ ~data <- rbind(a,b,c)1 O$ h6 Z$ ^" w: U: d* ?! i0 }5 b
: d2 c+ O1 n0 O1 }#绘制基础的散点图
4 N- R& `% E, R1 |+ n# C2 v+ C7 Lggplot(data, aes(x=x, y=y) ) +
& }9 i' r( n# r' @! r' P# k: U geom_point()
1 V* A$ D8 G& |+ \( q
# E) g/ J+ Z8 r- Q5 C3 a9 g8 E( s) K![]()
, d$ J: E1 a8 |/ S
, |# Y6 `, D. l- {2.绘制二维直方图。3 P: i+ e! k6 T! P1 @2 R' i/ c
####二维直方图可使用geom_bin2d()函数绘制; W( c6 `- l: Q# [& D# Q2 G
#二维直方图默认选项* x3 W4 E2 w" j" I' ^8 D
ggplot(data, aes(x=x, y=y) ) +( p' K$ [# U" Z. U1 M
geom_bin2d() +
8 f& S5 v' P8 F0 C* I theme_bw()
. V1 a1 `2 r" k% I
3 i. f4 l4 m) `* w# Bin大小控制与调色板& a2 B+ W N! A' A8 G( _7 _. n, M
ggplot(data, aes(x=x, y=y) ) +
* q" Q8 J" S" O. [6 q4 z geom_bin2d(bins = 70) +
k2 `% `5 V7 x4 z! s scale_fill_continuous(type = "viridis") +- ]9 m$ N: Q" G9 S, X5 ]
theme_bw()0 ~; j9 G6 J. n+ I, G; e
: U7 Z& p5 l8 h* [ z
! ~3 ~( I7 Z, U) x; Z0 ~
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
" ]( y$ X% l3 H5 e3 {) t8 Q# Packages Y. G" e! k1 p1 c: d$ U
library(hexbin)7 R" w( A2 ~: g; ]
library(RColorBrewer)
$ }' S7 b. O8 n3 t7 }- W
" {" O/ V4 |1 f6 y! Z/ d* v0 w& b& I# Create data
2 `0 i. p- L: Y: V2 ~6 B4 v" R$ ?9 Fx <- rnorm(mean=1.5, 5000) s) Y8 U1 l/ ] K! o6 j9 v
y <- rnorm(mean=1.6, 5000)
: t% X3 ?# a) ^
0 o/ | K9 L& |# Make the plot. g0 V/ D$ y* k6 E e4 X0 W) U
bin<-hexbin(x, y, xbins=40)
0 j, v: \' |' C0 k/ E/ k9 Zmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))$ ?$ {4 ?! t* K6 t) {! q2 y: n
plot(bin, main="" , colramp=my_colors , legend=F ) * I! r4 b. j' V, U" |
+ }! I, J9 o2 _# Q1 e
. p* {1 y+ f0 Y- `0 e4 o) Y3 E! m: W
# C4 V" u$ |2 p |
zan
|