QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3240|回复: 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图的绘图代码。
    ) E) L& M" U6 E  |# H* g' B+ i5 t, C
    R语言|绘制二维直方图0 f, f/ q8 y" T7 h8 X0 [; D
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。/ F. Z2 Y% o6 p! e2 Y4 q3 G7 t
    % f0 P. R5 |$ C- g4 Q: K( t
    1.先绘制基础的散点图;  K6 i+ v$ V' E3 F9 q# J2 p( \
    ##二维直方图5 V' o& _+ p( ^
    # Library7 r# r( Y' v$ r
    library(tidyverse)& m" b( I; ^' u
    library(ggplot2)
    9 D5 q: T+ ?* Q) A. p
    , W  _. F  t0 `: ?  K# 读取数据6 q1 B" v9 ]7 z  ]6 R  H
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    ' |* l2 s. P  U4 F" ib <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )7 F8 K4 C/ C$ O! W: m+ C
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    1 l; g2 s/ [8 q0 J$ _# ndata <- rbind(a,b,c)& E( W1 M) v6 d* i. c

    6 b" ]# [4 ^+ g/ r6 ?! a#绘制基础的散点图
    5 k1 H. a8 O+ r9 U. u& _ggplot(data, aes(x=x, y=y) ) +1 V# _6 T. `5 D+ N0 _. {
      geom_point()
    # ]: L) ?/ j3 u8 h8 [9 s+ V9 v
    7 w6 r" L  ]2 a
    % h) [; D- k) H% s% M
    9 l1 U' r% ]6 W+ y/ T( M2.绘制二维直方图。; C# _4 A4 Q; _  y, G
    ####二维直方图可使用geom_bin2d()函数绘制
    3 ]! P# D0 A# H, H8 ~$ g) `#二维直方图默认选项! [3 B4 ?" d& Q- l! h; Z
    ggplot(data, aes(x=x, y=y) ) +
    * J3 I: e; ?- y% C- H6 i# c9 ~* V( c3 J  geom_bin2d() +
    2 i& Y, H- j6 i; y  theme_bw()
    * g7 i& d8 o; a; e# o+ U2 T: B
      J! }' a% U% l# ]# Bin大小控制与调色板! V* D; l; Z; Z. t0 a/ s
    ggplot(data, aes(x=x, y=y) ) +
    5 a2 Y+ a; J% X: M, O6 _  geom_bin2d(bins = 70) +8 D; F. v) q& H2 B5 X0 G
      scale_fill_continuous(type = "viridis") +0 M& M4 s% g2 H( g8 v, C
      theme_bw()1 q4 `; n( B& B
    3 h/ D/ x  V2 F$ V: F- V+ r

    : y1 z& a( z* K8 g# H

    R语言|绘制Hexbin图

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


    / k1 T) c. D/ z8 J: V4 L# Packages
    / w7 N. J; A/ H. ylibrary(hexbin)  ~. s' {5 e6 `% h2 {/ r& b
    library(RColorBrewer) & l4 c7 f* l& W  d( G* W

    * _( |/ R0 l5 F7 z4 }" g! l# Create data$ j# G. }# R9 }* Z5 G$ z6 V
    x <- rnorm(mean=1.5, 5000)
    , }& s- a' |0 T7 `y <- rnorm(mean=1.6, 5000)
    " L- {/ K/ Z( O
    / f+ l2 f; O8 c# B# s1 u# Make the plot0 b$ t" ?& g* H1 Q" |& I
    bin<-hexbin(x, y, xbins=40)
    0 v% t' U! z. @( ?9 Qmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))), C7 F% T5 v0 {% l$ \8 W6 }# ^& [
    plot(bin, main="" , colramp=my_colors , legend=F )
    5 t' C5 O. {+ I( {: R
    ( G8 S$ h1 h- K, H3 W3 G& y" c. u; [9 m. S9 y! d

    2 P: k8 Z" o0 Y; B7 T, Z7 s& B8 g
    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-15 00:38 , Processed in 0.396272 second(s), 51 queries .

    回顶部