数学建模社区-数学中国

标题: R语言绘制二维密度图 [打印本页]

作者: 1047521767    时间: 2021-10-29 10:55
标题: R语言绘制二维密度图
R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。+ v- J$ x0 L8 n+ Y

. \: a% C8 a# J+ f% yR语言|绘制二维直方图
, `2 ^: ^6 p4 E: h; W对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
5 s  \& f; I. U5 q7 w  `
' M7 k9 r& q# Y/ w  N; z7 c/ p1.先绘制基础的散点图;
* w- k% t" h8 d5 W/ N9 `% _- `0 }/ O##二维直方图
% G; j+ W+ V4 |: a# Library
3 \% @/ Z" y( @/ ~' wlibrary(tidyverse)- }7 D8 X1 K: k) m  H6 ~6 w# u
library(ggplot2). X* T2 M# @( ~: m1 i+ M

( ~2 n' ?; o6 j! L0 b) r  i+ U- f# 读取数据
: \+ w2 w6 q* s. v4 c9 J! Da <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
1 U0 A4 _0 ^! u. j! y! q' z! ?( Kb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
2 M3 |0 S! z7 Y5 G1 f& dc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
4 x1 \+ d; |) |5 zdata <- rbind(a,b,c)
2 H; r9 o. |) T8 i0 i* k5 W1 i4 S; N% \
#绘制基础的散点图9 R( _7 V! \4 N" I* o& l" W
ggplot(data, aes(x=x, y=y) ) +
8 ?$ J: n- S2 q/ Y4 @  geom_point()7 Y& F! u  A/ Z

1 v' \, }4 j& @' U9 H" S+ I; Z5 C3 `# a# Y

  Z+ n7 j* c  i; ~2 c2.绘制二维直方图。
7 O5 p! N2 K" a( q) _1 r/ p####二维直方图可使用geom_bin2d()函数绘制/ k4 M$ P! G$ _! W
#二维直方图默认选项
+ Z3 M' `' |- S% _ggplot(data, aes(x=x, y=y) ) +
" D' N0 `6 C9 L  geom_bin2d() +, F5 z  L" e7 ^9 u! G- ]
  theme_bw()! j$ K) D" Q! ]$ z
# I9 N+ F* V. x  M; t) N( g8 y
# Bin大小控制与调色板
, [3 ]9 L1 i3 `- L1 l. iggplot(data, aes(x=x, y=y) ) +/ W  j/ |0 P1 {
  geom_bin2d(bins = 70) +9 {9 C* x2 I# j
  scale_fill_continuous(type = "viridis") +
: ~; X' v" V" M9 i7 f1 }  theme_bw(). d) H- S# |" T; q3 A2 G: n/ g
( K6 R  u0 F6 c0 b' q

& ?4 z$ i6 u5 a1 X9 Q, [- }

R语言|绘制Hexbin图

当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。


' |5 Z7 k# T1 M4 z2 v" d# Packages. p+ J& h) \; h& a
library(hexbin)/ D1 i- J3 B7 H1 B  M. `: @
library(RColorBrewer) 8 Z  Q3 z5 [; Z( \0 ~* k
2 `: [. ?/ m% z9 e" \7 e
# Create data
) i3 w9 s& Q4 ?. \: jx <- rnorm(mean=1.5, 5000)
8 U  a  ^" [; by <- rnorm(mean=1.6, 5000)
0 l7 p- c8 K. q0 r
( Y' `: |$ `. I# Make the plot8 }" N' W, v; T. d8 q$ |
bin<-hexbin(x, y, xbins=40)$ R' C- r4 O: K3 b- e; n
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))): g9 g; ^; x$ m2 U
plot(bin, main="" , colramp=my_colors , legend=F ) 4 s4 \: `2 L/ G5 M4 l% K4 M
/ z+ {7 i' g5 \8 o
& B5 Q# A& [0 v7 J* b$ I
: V6 D5 e3 i) g+ X8 D/ G





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5