QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3244|回复: 0
打印 上一主题 下一主题

R语言绘制二维密度图

[复制链接]
字体大小: 正常 放大

1178

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-29 10:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
    ) M0 K" Q7 q( r  V
    & V8 q  T) I0 s9 eR语言|绘制二维直方图+ @; l+ h8 {$ v6 ?- N
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    ( k5 @& k5 N* u* `( g  m8 [
    4 ~( W& y4 O' V, m. w1 \: R) g1.先绘制基础的散点图;6 e, u9 F/ n5 i7 T2 q9 H
    ##二维直方图: F2 q; G& W% c! W* `
    # Library
    3 q. G9 r* N6 D" flibrary(tidyverse)4 K( U. h! R5 t6 R3 v2 V. s* ?
    library(ggplot2)" I0 h+ R5 _* T" p0 K# W5 j
    / T0 W. o5 U  I' B  ?: d
    # 读取数据
    5 U( |( b, b; e/ U* Z2 ba <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )5 h2 u. |$ J" u! d" x- O
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )% j2 y8 Y* R2 k5 Y
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )8 \+ A. W4 N- q. X: k
    data <- rbind(a,b,c)$ k2 i. e$ K7 e4 l5 j

    2 l  D' }3 x. q7 [* u. S#绘制基础的散点图0 U5 w0 @9 k0 v' C' C3 L
    ggplot(data, aes(x=x, y=y) ) +
    2 Z) d5 M% a5 L# k  geom_point()
    " g+ D4 J0 \4 {( H9 Q7 B) y  `& D" k
      y  p2 s9 w& K/ E8 ]

    ! D" L% A. o- X2.绘制二维直方图。! Y+ I3 }# S& O8 G# s
    ####二维直方图可使用geom_bin2d()函数绘制
    0 q7 k9 K( |5 g" h" d- c#二维直方图默认选项
    " z! u- K  a' k& E, S) |ggplot(data, aes(x=x, y=y) ) +; k% S5 }3 U/ J5 V
      geom_bin2d() +
    4 w9 I6 Z  R+ q9 h' u# \3 g2 ~7 S  theme_bw()6 d4 E. O4 M$ }  x5 ]& |

    : ?- T4 `; M0 ]: B/ x# Bin大小控制与调色板
    9 m7 w9 n0 X( ?) }) Vggplot(data, aes(x=x, y=y) ) +; D: ?9 S& i5 O8 v
      geom_bin2d(bins = 70) +0 B5 }3 d- _# c( }8 e
      scale_fill_continuous(type = "viridis") +, |; ~  Z( m2 G5 ?" @' u
      theme_bw()
    & j" S" D3 c" J- O+ y2 \
    0 h* q% a) E* n$ k% J. `/ `
      h$ P6 {( j, K

    R语言|绘制Hexbin图

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

    ' u* T/ `5 @" x6 i
    # Packages
    , t7 v3 W% {9 K- d1 ]0 Jlibrary(hexbin), T6 `5 x! w* t, V% B
    library(RColorBrewer) ! Y! p# \% {" h7 s! u, I/ V
    , D# d, _5 B6 W
    # Create data6 J3 _: u$ E8 J, f5 \
    x <- rnorm(mean=1.5, 5000)
    * X% ^0 e/ w3 M) J% @4 o. ^y <- rnorm(mean=1.6, 5000) # I: H; U5 Y# |
    & j/ V2 U% R: g' V# W
    # Make the plot: b) ?/ U' X& ~# o9 C0 {$ p" U4 S
    bin<-hexbin(x, y, xbins=40)
    4 w0 A& B' [  I1 }4 Vmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    : U1 X5 O; q% yplot(bin, main="" , colramp=my_colors , legend=F )
    : ^( \0 y2 T8 ~/ E4 W* E
    5 v5 [, p$ |% E6 N
    ! K. s; @$ {) x5 S2 @. Y7 F, M$ d2 ?! g1 p/ o) E
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-17 00:24 , Processed in 0.450316 second(s), 50 queries .

    回顶部