- 在线时间
- 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图的绘图代码。
) E) L& M" U6 E |# H* g' B+ i5 t, C
R语言|绘制二维直方图0 f, f/ q8 y" T7 h8 X0 [; D
对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。/ F. Z2 Y% o6 p! e2 Y4 q3 G7 t
% f0 P. R5 |$ C- g4 Q: K( t
1.先绘制基础的散点图; K6 i+ v$ V' E3 F9 q# J2 p( \
##二维直方图5 V' o& _+ p( ^
# Library7 r# r( Y' v$ r
library(tidyverse)& m" b( I; ^' u
library(ggplot2)
9 D5 q: T+ ?* Q) A. p
, W _. F t0 `: ? K# 读取数据6 q1 B" v9 ]7 z ]6 R H
a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
' |* l2 s. P U4 F" ib <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )7 F8 K4 C/ C$ O! W: m+ C
c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
1 l; g2 s/ [8 q0 J$ _# ndata <- rbind(a,b,c)& E( W1 M) v6 d* i. c
6 b" ]# [4 ^+ g/ r6 ?! a#绘制基础的散点图
5 k1 H. a8 O+ r9 U. u& _ggplot(data, aes(x=x, y=y) ) +1 V# _6 T. `5 D+ N0 _. {
geom_point()
# ]: L) ?/ j3 u8 h8 [9 s+ V9 v
7 w6 r" L ]2 a![]()
% h) [; D- k) H% s% M
9 l1 U' r% ]6 W+ y/ T( M2.绘制二维直方图。; C# _4 A4 Q; _ y, G
####二维直方图可使用geom_bin2d()函数绘制
3 ]! P# D0 A# H, H8 ~$ g) `#二维直方图默认选项! [3 B4 ?" d& Q- l! h; Z
ggplot(data, aes(x=x, y=y) ) +
* J3 I: e; ?- y% C- H6 i# c9 ~* V( c3 J geom_bin2d() +
2 i& Y, H- j6 i; y theme_bw()
* g7 i& d8 o; a; e# o+ U2 T: B
J! }' a% U% l# ]# Bin大小控制与调色板! V* D; l; Z; Z. t0 a/ s
ggplot(data, aes(x=x, y=y) ) +
5 a2 Y+ a; J% X: M, O6 _ geom_bin2d(bins = 70) +8 D; F. v) q& H2 B5 X0 G
scale_fill_continuous(type = "viridis") +0 M& M4 s% g2 H( g8 v, C
theme_bw()1 q4 `; n( B& B
3 h/ D/ x V2 F$ V: F- V+ r
: y1 z& a( z* K8 g# HR语言|绘制Hexbin图 当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。
/ k1 T) c. D/ z8 J: V4 L# Packages
/ w7 N. J; A/ H. ylibrary(hexbin) ~. s' {5 e6 `% h2 {/ r& b
library(RColorBrewer) & l4 c7 f* l& W d( G* W
* _( |/ R0 l5 F7 z4 }" g! l# Create data$ j# G. }# R9 }* Z5 G$ z6 V
x <- rnorm(mean=1.5, 5000)
, }& s- a' |0 T7 `y <- rnorm(mean=1.6, 5000)
" L- {/ K/ Z( O
/ f+ l2 f; O8 c# B# s1 u# Make the plot0 b$ t" ?& g* H1 Q" |& I
bin<-hexbin(x, y, xbins=40)
0 v% t' U! z. @( ?9 Qmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))), C7 F% T5 v0 {% l$ \8 W6 }# ^& [
plot(bin, main="" , colramp=my_colors , legend=F )
5 t' C5 O. {+ I( {: R![]()
( G8 S$ h1 h- K, H3 W3 G& y" c. u; [9 m. S9 y! d
2 P: k8 Z" o0 Y; B7 T, Z7 s& B8 g |
zan
|