QQ登录

只需要一步,快速开始

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

R语言绘制二维密度图

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-29 10:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
    . n- r: ]; p; ^* u+ b# k. @9 w& A% e
    R语言|绘制二维直方图5 j* _0 _, Z8 x" L2 n6 h7 r
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    7 H+ p8 D' |- S% T" F' m# f5 \) ~" J, d) h
    1.先绘制基础的散点图;* B( Y2 k* I3 u; l  j! t7 w) p
    ##二维直方图
    ! O4 F5 O0 ~. h/ e: `% c# Library
    & s" Q. ^" T$ `' [* H9 Y! X2 M4 p" \library(tidyverse). O- c! B, c+ b
    library(ggplot2)
    % y+ g1 b  Y2 b
    % {) G9 D' h8 S. |# 读取数据+ z& L" ~0 W$ ?# H
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )" t$ g7 M2 ~) u6 [
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    9 b# r' Y6 o6 X/ h  T# }% Bc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )2 a6 @. U4 X1 t  Z! I
    data <- rbind(a,b,c)
    5 @3 F' }& c5 y( U8 e8 U# X
    5 |" I% e" X) [#绘制基础的散点图1 b' {; o: y9 q2 f6 C2 x5 {
    ggplot(data, aes(x=x, y=y) ) +
    * D) v# p: A+ U$ {# B  geom_point()
    ( E2 h& r3 h, E7 B6 B6 ]. O
    # D1 W# w& W) {2 T* E
    ! N* q, E% f2 I9 B9 H% L2 ]+ s6 Y& X7 S- ~7 f8 H: t& d8 w$ v2 Q
    2.绘制二维直方图。
    9 o' Q) x: M6 M8 T4 |. {####二维直方图可使用geom_bin2d()函数绘制7 l8 ~& B$ Y3 @3 O. j7 c/ [
    #二维直方图默认选项
    , D8 E: h$ p5 M) A7 ]/ s6 j% U/ Hggplot(data, aes(x=x, y=y) ) +
    " N/ C) B' j$ E# d# G  geom_bin2d() +
    6 J6 P; ~9 H7 W+ ~  theme_bw()
    2 y1 ~$ }, X0 w; c) L/ P7 X6 D2 K  \( S, J$ `% @+ s* W- q/ n
    # Bin大小控制与调色板
    ( ?, r$ u1 T8 `2 \7 @ggplot(data, aes(x=x, y=y) ) +
    5 M7 `; ?# W; ?( V  geom_bin2d(bins = 70) +/ V2 u- A& f, N  P5 @- {. C
      scale_fill_continuous(type = "viridis") +
    + [1 J% ~; P5 o* C1 ^  theme_bw(). B# \. i9 \/ N$ g9 q
    4 V# q( ~0 V& @1 S* u0 I3 ^0 ?
    ( D3 F2 L! |) k/ `

    R语言|绘制Hexbin图

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

    % J0 R' j6 ]5 \
    # Packages: _. ?/ Q- M1 j% o0 a2 J) G
    library(hexbin)
    + p3 g- ^- p/ \: ~2 E# C$ wlibrary(RColorBrewer) 8 ^. s# o5 b1 @0 }- p  I+ l; R  E0 d2 p* F

    0 b1 Y* {; K7 j. q2 Q4 f! s6 v4 E- v# Create data
    , d: X& }1 `* ux <- rnorm(mean=1.5, 5000)3 f3 T) M' r2 e" [+ X
    y <- rnorm(mean=1.6, 5000)
    ( y! U% U5 D  `5 F* c
    & A1 A( D) B- _3 D0 n  ]) M# Make the plot$ _0 y! {1 ^- z; j# W0 P
    bin<-hexbin(x, y, xbins=40)
    9 b, f/ S/ N" \% T1 l, g5 Ymy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))/ c: h* g+ ]* b% K# a: i3 u
    plot(bin, main="" , colramp=my_colors , legend=F ) . E: [7 a: Y: O/ k- n3 j
    2 O% X3 l8 y3 M6 ^6 S

    % H& ~% l+ W8 K2 F  ^* C# n. c4 w# Y0 i
    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, 2024-5-9 06:42 , Processed in 0.428359 second(s), 50 queries .

    回顶部