QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3418|回复: 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图的绘图代码。
    ' [' T2 F0 ^9 E3 m0 r. |2 v9 T/ \& p
    R语言|绘制二维直方图* J' y' d2 ^5 q
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。. I, v8 y* h0 p- j8 r; V6 K2 ]1 A" t

    # ^7 g8 u. N1 _. \0 a1.先绘制基础的散点图;
    6 [4 @, `8 Z5 @7 o. _##二维直方图
    . I0 @, w+ }9 v& |% R' v$ c8 T# Library0 i6 ?5 N+ I7 c4 @' A% q
    library(tidyverse)
    : R2 K# c5 j3 O9 y( W) _library(ggplot2)
    5 ^6 D5 I* ^' |5 |( A( F+ j" @3 G$ J! m% U
    # 读取数据- H, w  F0 W" y- a
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) ): c# w. C+ v) e- L7 m9 d
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ); `; l+ }7 M4 \% w1 |  f" n
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    ( o8 Y3 |" i+ Fdata <- rbind(a,b,c)
    ' R3 ?6 w' K+ F5 f! @" X% k
    , j6 l4 ?/ |; Z; q0 @2 L#绘制基础的散点图
    % l9 k- W6 K& k3 yggplot(data, aes(x=x, y=y) ) +
    3 d( p9 a1 Z1 H+ k$ `: K  geom_point(): p0 u, m9 a* b) S) d* t& f

    & ~/ ~- G3 \- W* ~) ^% C: w2 P- S* j, t/ u9 O! }
    ( n6 D4 K! _9 G/ N- I  D# q) @$ i5 Y! H
    2.绘制二维直方图。4 a8 B0 ~9 w8 |6 `
    ####二维直方图可使用geom_bin2d()函数绘制& L6 K" E7 k" R: S# }7 }
    #二维直方图默认选项
    $ s6 A* v. u5 g2 }4 j" Z8 pggplot(data, aes(x=x, y=y) ) +
    . }3 `% i, j5 V0 ?- n( Y3 x  geom_bin2d() +
    & `4 a! j4 s. l( x& u" v: f" ]7 {  theme_bw()0 }' ]- W3 I( m7 M( ?
    + w) u- W) A, w+ A
    # Bin大小控制与调色板
    4 U0 W/ y; ?: O0 j# [$ c/ h7 Cggplot(data, aes(x=x, y=y) ) +
    0 d2 C' I+ m+ r( b* ~  geom_bin2d(bins = 70) +
    . @0 t' y7 p! V0 J1 t  scale_fill_continuous(type = "viridis") +
    2 I/ D& j+ J, A& O4 H: \  theme_bw()7 p: e9 C; g4 ^+ q' ~- r' ~' s  E

      v. [: B  w5 U' z1 E1 J- Z, G! e6 u+ o

    R语言|绘制Hexbin图

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


    8 D# P# `: N8 J: F1 r# Packages% b! O! c1 W% x# \: x5 \5 D
    library(hexbin)1 I. H) i2 v2 W) u9 L: i& M
    library(RColorBrewer)
    3 e: l1 C/ r% T2 v8 T0 G8 N/ P9 b! o  d# X+ T: H% j% _
    # Create data& O7 J3 m& M  W% d& T
    x <- rnorm(mean=1.5, 5000)+ Q2 a1 B9 L8 _' \
    y <- rnorm(mean=1.6, 5000) ' x  _3 h# M( J& Y; h  c$ e$ t5 a. I

    3 f+ G/ o* e3 x: f# q( ]# Make the plot
    ' g. Q. i  {7 }4 A4 ?9 s7 sbin<-hexbin(x, y, xbins=40)! ]9 a* j" t; W+ `7 T
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))8 B: H  m. N' d& Q1 ~- r/ A
    plot(bin, main="" , colramp=my_colors , legend=F )
    0 o2 \+ W7 Z1 U' Y
    8 s. S( X% M  J3 w' g" ~0 c, `" s! O
    / U. }# @$ h$ d4 a& v# t
    / k1 @5 r4 I. R" H( c; m
    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 00:42 , Processed in 0.404575 second(s), 50 queries .

    回顶部