QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3419|回复: 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图的绘图代码。0 d/ |/ T6 b" u* H/ I
    ) [1 \& l% w! |' ~8 Z
    R语言|绘制二维直方图
    + ]* _& k( N6 ~: {对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。5 y+ D6 O& d) q7 X3 [
    6 g5 U! ]" p, S4 ~
    1.先绘制基础的散点图;& K; {3 ~# v: D% c7 z# _
    ##二维直方图
    + e" Y% N' w; G7 X3 `) j. ~# Library9 q/ ?# e3 j; K1 u/ u3 Z
    library(tidyverse); Y! D& S. T2 ~+ C; l" ]5 z
    library(ggplot2)
    ! E+ O6 z0 S. m  D2 F6 Z. }1 I# T9 X! g
    # 读取数据
    ! Q  \7 B- N5 {, v" x+ aa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    ) g: ]0 S- q, a9 C  ~b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    3 Q( o" i& K' P8 c: _c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )3 c) Y) R$ Q" _
    data <- rbind(a,b,c)
    1 F8 }: H% e' j7 \9 ~3 ~/ @
    0 l2 C7 s8 f# `- O#绘制基础的散点图
    ; L+ a  O/ y3 ~0 }ggplot(data, aes(x=x, y=y) ) +
    ! |' ^1 o7 f& l, n! c  O+ w" ?  geom_point()
    5 y  \5 j/ }' e. ~& G" N6 `" E/ \9 m/ S6 B
    9 B3 q* i8 Q, d) |2 G1 W  O

    6 N- I1 u& P, U$ f+ r2.绘制二维直方图。
    ( h% a- i" ^; x####二维直方图可使用geom_bin2d()函数绘制4 ~2 J$ P- {. c- u7 `. I
    #二维直方图默认选项
    * o: Q. U, c2 V& T& Tggplot(data, aes(x=x, y=y) ) +
    ! ~3 T/ B/ q+ i7 H/ h8 w  geom_bin2d() +  _  M+ a' R- L3 H' [; D% s. N: u
      theme_bw()
    8 p" f0 e5 U. D2 ?; P7 Y6 \: A7 T) I* j' a$ I* s
    # Bin大小控制与调色板; e( O8 N( }& D% p0 b: J0 l
    ggplot(data, aes(x=x, y=y) ) +3 Q7 \( b* q2 s) X6 ^$ [6 e
      geom_bin2d(bins = 70) +/ ^0 I  o9 U3 n2 @
      scale_fill_continuous(type = "viridis") +
    3 a5 x! \( F$ [- q  theme_bw()/ j- P4 i7 W1 ~6 f! N- V

    1 G: R* ^* U0 L9 E$ F: @5 i. f% l

    R语言|绘制Hexbin图

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

    " V7 L9 B. U% n' z
    # Packages
    " g! U+ ?) H) G. S/ ?5 Clibrary(hexbin)
    9 h+ ~( `4 A% |library(RColorBrewer) & N8 [+ h# `6 H
    ( _+ p5 j# R* i( O
    # Create data2 g- R/ N/ s, }
    x <- rnorm(mean=1.5, 5000)9 g2 q+ A% [2 _5 i: r& R
    y <- rnorm(mean=1.6, 5000) * h1 g. d& s0 x$ {. z2 L* p6 f

    5 d2 j( o1 e: ]5 S6 L1 E# Make the plot
    1 j% `0 w2 K5 A' {" T/ ]2 Kbin<-hexbin(x, y, xbins=40)- F/ s- [) @5 L6 _4 v. h! G
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    - h. x# v0 n; [" Tplot(bin, main="" , colramp=my_colors , legend=F )
    " h5 N6 F  b; Q2 C
      y' u+ X0 U) \; s8 H# U3 C; z, X/ ^, Y( _' q9 w+ E+ b/ {+ _
    2 v) D; G& @7 @5 r: ~
    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-9-5 02:32 , Processed in 0.419974 second(s), 50 queries .

    回顶部