R 中的对数刻度图

2023-11-23

我想绘制聚类系数和平均最短- 路径作为 Watts-Strogatz 模型参数 p 的函数如下:

enter image description here

这是我的代码:

library(igraph)
library(ggplot2)
library(reshape2)
library(pracma)
p <- #don't know how to generate this?
trans <- -1
path <- -1

for (i in p) {
  ws_graph <- watts.strogatz.game(1, 1000, 4, i)
  trans <-c(trans, transitivity(ws_graph, type = "undirected", vids = NULL,
               weights = NULL))
  path <- c(path,average.path.length(ws_graph))
}
#Remove auxiliar values
trans <- trans[-1]
path <- path[-1]
#Normalize them
trans <- trans/trans[1]
path <- path/path[1]

x = data.frame(v1 = p, v2 = path, v3 = trans)

plot(p,trans, ylim = c(0,1), ylab='coeff')
par(new=T)
plot(p,path, ylim = c(0,1), ylab='coeff',pch=15)

我应该如何制作这个 x 轴?


您可以生成以下值p使用如下代码:

p <- 10^(seq(-4,0,0.2))

您希望 x 值在 log10 尺度上均匀分布。这意味着您需要采用均匀间隔的值作为以 10 为底的指数,因为 log10 标度采用 x 值的 log10,这是完全相反的操作。

有了这个,你已经很远了。你不需要par(new=TRUE),你可以简单地使用该函数plot接下来是函数points。后者并没有重绘整个情节。使用参数log = 'x'告诉 R 你需要一个对数 x 轴。这个只需要在plot函数,则points函数和所有其他低级绘图函数(那些不替换而是添加到绘图中的函数)都遵循此设置:

plot(p,trans, ylim = c(0,1), ylab='coeff', log='x')
points(p,path, ylim = c(0,1), ylab='coeff',pch=15)

plot

EDIT:如果您想复制上图的对数轴外观,您必须自己计算它们。在互联网上搜索“R log10 小刻度”或类似内容。下面是一个简单的函数,可以计算对数轴主要刻度和次要刻度的适当位置

log10Tck <- function(side, type){
   lim <- switch(side, 
     x = par('usr')[1:2],
     y = par('usr')[3:4],
     stop("side argument must be 'x' or 'y'"))
   at <- floor(lim[1]) : ceil(lim[2])
   return(switch(type, 
     minor = outer(1:9, 10^(min(at):max(at))),
     major = 10^at,
     stop("type argument must be 'major' or 'minor'")
   ))
}

定义好这个函数后,通过上面的代码,就可以调用这个函数了axis(...)函数,绘制轴。建议:将该函数保存在其自己的 R 脚本中,并使用该函数在计算顶部导入该脚本source。通过这种方式,您可以在以后的项目中重用该功能。在绘制轴之前,您必须防止plot从绘制默认轴,因此添加参数axes = FALSE给你的plot call:

plot(p,trans, ylim = c(0,1), ylab='coeff', log='x', axes=F)

然后您可以使用由生成的刻度位置来生成轴 新功能:

axis(1, at=log10Tck('x','major'), tcl= 0.2) # bottom
axis(3, at=log10Tck('x','major'), tcl= 0.2, labels=NA) # top
axis(1, at=log10Tck('x','minor'), tcl= 0.1, labels=NA) # bottom
axis(3, at=log10Tck('x','minor'), tcl= 0.1, labels=NA) # top
axis(2) # normal y axis
axis(4) # normal y axis on right side of plot
box()

plot with pretty axes

作为第三个选项,当您在原始帖子中导入 ggplot2 时:与 ggplot 相同,没有上述所有内容:

# Your data needs to be in the so-called 'long format' or 'tidy format' 
# that ggplot can make sense of it. Google 'Wickham tidy data' or similar
# You may also use the function 'gather' of the package 'tidyr' for this
# task, which I find more simple to use.  
d2 <- reshape2::melt(x, id.vars = c('v1'), measure.vars = c('v2','v3'))
ggplot(d2) +
   aes(x = v1, y = value, color = variable) + 
   geom_point() + 
   scale_x_log10()

ggplot plot

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中的对数刻度图 的相关文章

  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • R 根据事件更新值

    我最近发布了这个问题 该问题已经与我在笔记本电脑上本地使用的 Mysql 数据库相关 由于我在 Mysql 中没有找到问题的解决方案 其他人似乎也没有找到解决方案 所以我想再次发布它 但现在与 R 相关 我使用带有 RMysql 包的数据库
  • 如何在R中计算文本中的句子数?

    我使用 R 将文本读入readChar 功能 我的目的是测试文本句子中字母 a 出现次数与字母 b 出现次数一样多的假设 我最近发现了 stringr 包 它帮助我对文本做很多有用的事情 例如计算字符数以及整个文本中每个字母出现的总数 现在
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 绘制到图像对象

    我可以保存一个图imshow 因为它返回一个图像对象 如下所示 image plt imshow list interpolation None 后来我想创建其中许多图像的动画 将其保存在列表中并将其渲染为视频 如果这种方法很愚蠢 请告诉我
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N

随机推荐

  • 正则表达式模式任意两个字母后跟六个数字

    请协助使用正确的正则表达式来匹配任意 2 个字母 后跟 6 个整数的任意组合 These would be valid RJ123456 PY654321 DD321234 These would not DDD12345 12DDD123
  • 存储在元组内的元素总和

    给定一个包含一堆整数元素的元组 如何找到所有元素的总和 例如 如果我有一个元组列表 li 1 2 1 3 2 3 我怎样才能得到这样的东西 3 4 5 其中 3 4 和 5 分别是三个元组的总和 您可以使用map and sum像这样的功能
  • 从多个 Web.config 文件访问 appSettings

    我正在设计一个 ASP NET MVC4 Web 应用程序项目 在我的项目的根目录中 我有惯用的默认值Web config文件与我相应的元素 特别是我有几个appSettings定义的元素 作为演示这一点的示例摘录
  • Kubernetes:如何增加临时存储

    我有三个主节点 每个节点的磁盘大小为 80 GB 最近我遇到了这个问题 Normal Pulling 52s x2 over 6m17s kubelet 192 168 10 37 pulling image gcr io kubeflow
  • Facebook Connect 和 HTML5、xmlns 可用吗?

    Facebook Connect 及其 社交小部件 文档提到您需要添加xmlns归因于你的将使用它的页面上的标签 我明白那个xmlns用于 XML 名称间距 并且之前已将其与 XHTML 一起使用 然而 随着最近有关 HTML4 HTML5
  • 如何首先使用 EF 代码映射现有的 sql server 视图

    我对 EF 相当陌生 首先学习 EF 代码 我正在寻找一种知识来首先使用 EF 代码映射现有的 sql server 视图 我已经用 POCO 映射了我的视图 但出现以下错误 当我尝试从视图中获取数据时抛出以下错误 附加信息 支持 Test
  • PBS_MARQUEE 进度条 WinApi

    我正在尝试让 PBS MARQUEE 类型的进度条正常工作 我可以创建进度条 但我就是无法让它移动 如果发现这个 但我不清楚我必须做什么 事实证明 由于我将进度条作为资源而不是使用 CreateWindowEx 所以我必须使用 SetWin
  • ::(双冒号)在 DOS 批处理文件中意味着什么?

    我找到了这个程序web archive org http baiyunmanor com blog work get current date time in dos batch file This uses Windows Scripti
  • JPA 标准生成器:如何按顺序替换字符串并将其转换为数字?

    有人可以建议我如何使用 JPA Criteria 构建器 API 构建以下查询吗 SELECT id name date version FROM public upgradeTable order by CAST replace vers
  • 快速计算 .numpy 数组中每 N 行的平均值

    我有一个非常大的屏蔽 NumPy 数组 originalArray 有很多行和两列 我想取每两行的平均值originalArray并建立一个newArray其中每一行是两行的平均值originalArray so newArray行数为or
  • 在 javascript 或着色器中更好地乘以矩阵?

    我一直在看几个 webgl 示例 考虑MDN 的教程 他们的顶点着色器将顶点乘以透视矩阵和世界位置矩阵 gl Position uPMatrix uMVMatrix vec4 aVertexPosition 1 0 But the uMVM
  • Java序列化-Android反序列化

    我尝试过在 Java 和 Android 之间实现跨平台序列化 我使用了 Serialized 并将 Android 中的代码与桌面 Java 中的代码放在同一个包中 来源 java desktop 序列化 Student student
  • 从 Service Fabric 集群中删除应用程序

    我尝试使用服务结构资源管理器从服务结构中删除应用程序 我使用 删除应用程序 操作删除了我的应用程序 然后 当我尝试取消配置应用程序类型时 我收到错误消息 错误 版本 1 0 0 的应用程序类型无法取消配置为 它仍然包含活动的应用程序 我可以
  • “await Task.Run(); return;”之间的任何区别和“返回Task.Run()”? [复制]

    这个问题在这里已经有答案了 以下两段代码之间是否存在概念上的差异 async Task TestAsync await Task Run gt DoSomeWork and Task TestAsync return Task Run gt
  • 计算文件中的单词数

    我在计算文件中的字数时遇到问题 我采取的方法是 当我看到空格或换行符时 我就知道要计算单词数 问题是 如果我在段落之间有多行 那么我最终也会将它们算作单词 如果您查看 readFile 方法 您就可以看到我在做什么 您能帮助我并指导我如何解
  • Monad 变压器的使用

    我正在 Haskell 书中读到有关 monad 转换器的内容 作者提到如下 莫纳德呢 组合两个任意数据类型没有问题 有 Monad 实例 我们在使用 Compose 时已经看到了这一点 Maybe 和 list 都定义了 Monad 实例
  • Github - 文件 XYZ 为 126.80 MB;这超出了 GitHub 的文件大小限制 100.00 MB

    我有一个本地存储库 其中意外添加了一个大文件 现在我落后了近 100 个提交 当我尝试推送到 GitHub 时 出现错误 我需要帮助做任何我需要做的事情才能推送这个存储库的其余部分 我不需要这个文件 可以永久删除它 旁注 这是一个包含 IP
  • RoR 预编译资产在 rake asset:precompile 时失败 - 在基本上空的 application.js 上

    Running bundle exec rake assets precompile RAILS ENV production trace Execute assets precompile primary rake aborted Typ
  • 将带重音的文本转换为 ASCII 字符?

    我想在 Javascript 中将重音字母和各种编码转换为纯英文 ASCII 编码 并想知道有哪些可能的选项 我需要的是 clair becomes eclair b r becomes bar becomes privet becomes
  • R 中的对数刻度图

    我想绘制聚类系数和平均最短 路径作为 Watts Strogatz 模型参数 p 的函数如下 这是我的代码 library igraph library ggplot2 library reshape2 library pracma p l