- 在线时间
- 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图的绘图代码。
. n- r: ]; p; ^* u+ b# k. @9 w& A% e
R语言|绘制二维直方图5 j* _0 _, Z8 x" L2 n6 h7 r
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
7 H+ p8 D' |- S% T" F' m# f5 \) ~" J, d) h
1.先绘制基础的散点图;* B( Y2 k* I3 u; l j! t7 w) p
##二维直方图
! O4 F5 O0 ~. h/ e: `% c# Library
& s" Q. ^" T$ `' [* H9 Y! X2 M4 p" \library(tidyverse). O- c! B, c+ b
library(ggplot2)
% y+ g1 b Y2 b
% {) G9 D' h8 S. |# 读取数据+ z& L" ~0 W$ ?# H
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )" t$ g7 M2 ~) u6 [
b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
9 b# r' Y6 o6 X/ h T# }% Bc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )2 a6 @. U4 X1 t Z! I
data <- rbind(a,b,c)
5 @3 F' }& c5 y( U8 e8 U# X
5 |" I% e" X) [#绘制基础的散点图1 b' {; o: y9 q2 f6 C2 x5 {
ggplot(data, aes(x=x, y=y) ) +
* D) v# p: A+ U$ {# B geom_point()
( E2 h& r3 h, E7 B6 B6 ]. O
# D1 W# w& W) {2 T* E
! N* q, E% f2 I9 B9 H% L2 ]+ s6 Y& X7 S- ~7 f8 H: t& d8 w$ v2 Q
2.绘制二维直方图。
9 o' Q) x: M6 M8 T4 |. {####二维直方图可使用geom_bin2d()函数绘制7 l8 ~& B$ Y3 @3 O. j7 c/ [
#二维直方图默认选项
, D8 E: h$ p5 M) A7 ]/ s6 j% U/ Hggplot(data, aes(x=x, y=y) ) +
" N/ C) B' j$ E# d# G geom_bin2d() +
6 J6 P; ~9 H7 W+ ~ theme_bw()
2 y1 ~$ }, X0 w; c) L/ P7 X6 D2 K \( S, J$ `% @+ s* W- q/ n
# Bin大小控制与调色板
( ?, r$ u1 T8 `2 \7 @ggplot(data, aes(x=x, y=y) ) +
5 M7 `; ?# W; ?( V geom_bin2d(bins = 70) +/ V2 u- A& f, N P5 @- {. C
scale_fill_continuous(type = "viridis") +
+ [1 J% ~; P5 o* C1 ^ theme_bw(). B# \. i9 \/ N$ g9 q
4 V# q( ~0 V& @1 S* u0 I3 ^0 ?
( D3 F2 L! |) k/ `
R语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。 % J0 R' j6 ]5 \
# Packages: _. ?/ Q- M1 j% o0 a2 J) G
library(hexbin)
+ p3 g- ^- p/ \: ~2 E# C$ wlibrary(RColorBrewer) 8 ^. s# o5 b1 @0 }- p I+ l; R E0 d2 p* F
0 b1 Y* {; K7 j. q2 Q4 f! s6 v4 E- v# Create data
, d: X& }1 `* ux <- rnorm(mean=1.5, 5000)3 f3 T) M' r2 e" [+ X
y <- rnorm(mean=1.6, 5000)
( y! U% U5 D `5 F* c
& A1 A( D) B- _3 D0 n ]) M# Make the plot$ _0 y! {1 ^- z; j# W0 P
bin<-hexbin(x, y, xbins=40)
9 b, f/ S/ N" \% T1 l, g5 Ymy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))/ c: h* g+ ]* b% K# a: i3 u
plot(bin, main="" , colramp=my_colors , legend=F ) . E: [7 a: Y: O/ k- n3 j
2 O% X3 l8 y3 M6 ^6 S
% H& ~% l+ W8 K2 F ^* C# n. c4 w# Y0 i
|
zan
|