- 在线时间
- 514 小时
- 最后登录
- 2023-12-1
- 注册时间
- 2018-7-17
- 听众数
- 15
- 收听数
- 0
- 能力
- 0 分
- 体力
- 39407 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 12518
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 1158
- 精华
- 0
- 分享
- 0
- 好友
- 15
TA的每日心情 | 开心 2023-7-31 10:17 |
---|
签到天数: 198 天 [LV.7]常住居民III
- 自我介绍
- 数学中国浅夏
|
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
8 m5 A, L2 C N" C; ^- w5 g9 X9 Q& e
R语言|绘制二维直方图; c& d8 L: C2 P2 U( r. u/ i( A$ J2 T T
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
$ I' w/ M/ u7 E; n: M. `5 h. B1 U7 ~; H0 i# s% ]3 Y1 C
1.先绘制基础的散点图;
* P% _. t& L5 P+ o7 L##二维直方图9 B F$ [" T; W C
# Library' X+ \( |3 R* a, R$ R( U: _
library(tidyverse)
$ m% b! t, R% l) h: ?& h* Wlibrary(ggplot2)
9 s/ K: E) M, ~ [" a: S% V& g5 r1 D- m/ q+ y" h. w/ Z
# 读取数据
. B+ \* z& U& A' Aa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )8 L5 ^" l- l' z9 ^! |3 }" c4 ^& f
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ), \! k, o1 O2 n u+ q
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )8 I# u3 R/ J2 }9 f+ F- Y F
data <- rbind(a,b,c)
0 G1 r$ y% | o$ \3 R8 I; ]/ n, P$ B
#绘制基础的散点图5 v0 l4 U2 g/ w% y
ggplot(data, aes(x=x, y=y) ) +
( o6 y2 q% G$ p geom_point()
2 v6 d$ I3 ]3 B7 l. o# n0 [* N/ B2 l! Y7 x, x% s4 N
7 x9 \# b7 }3 Z
: [0 G7 n; y2 u+ T1 [2.绘制二维直方图。
- h9 t8 ~) R1 o- f l0 t" ]5 U0 _####二维直方图可使用geom_bin2d()函数绘制
+ R( W* @- }) i; H. i; l4 P# f5 U#二维直方图默认选项! |3 W1 h$ k; {
ggplot(data, aes(x=x, y=y) ) +
5 }( `. y6 ?& t. Y geom_bin2d() +
9 I2 J' i' T# V5 P theme_bw()" E+ w+ ~6 m) F# ~- `
! e2 p4 X8 M i( ?
# Bin大小控制与调色板
, K& `/ r# U$ X2 B8 z1 \6 W; q5 Aggplot(data, aes(x=x, y=y) ) +0 O0 N( N3 \3 V
geom_bin2d(bins = 70) +8 n" J9 f2 k# O) k5 h$ O! P
scale_fill_continuous(type = "viridis") +$ G( A U. e' |7 h1 ]" V' S* O
theme_bw()6 }( j( [. F/ G; f F0 q' p
$ e: d0 ?/ B7 }- c2 p( y4 a7 @4 [; Z0 z& O& {9 [$ f
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
7 G6 v% a# G# Q( J+ h# Packages7 S& s7 q# R! \! u. {7 O
library(hexbin)
8 ~" W! r. J8 m4 Blibrary(RColorBrewer)
# l4 C! C! L. b; l: h: s; g
" D" L$ @% K* r; v3 u7 |! p6 Q# Create data
1 Z8 Q" I+ k1 p) o% K2 f$ f- W4 ]x <- rnorm(mean=1.5, 5000)& I5 ^$ v. U: b, A, E
y <- rnorm(mean=1.6, 5000)
; r8 r5 D- ]1 O& d
7 h# t, }8 U" | }; N! E# Make the plot
8 i4 F1 F- f A, p) S8 M. R/ @bin<-hexbin(x, y, xbins=40)6 l" e7 i9 l# N) p" T6 f3 ]
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))) g0 P1 E6 J( ^! D
plot(bin, main="" , colramp=my_colors , legend=F ) 4 ]1 J% Y9 y! K, Y6 S
. X- O, J/ Y3 [% s, m
& Z, N: |) D" u8 `/ y% a5 s5 x3 {1 R5 ]
|
zan
|