ggplot 中按比例大小的箭头

2024-01-29

基于 ggplot2 构建密封件示例 http://docs.ggplot2.org/current/geom_segment.html,我正在尝试更改箭头的粗细,以便它们的整体大小更好地反映数据变量。我可以指定长度和厚度,但不知道如何更改箭头的大小。非常感谢任何建议。

require(ggplot2)
require(grid)

d = seals[sample(1:nrow(seals), 100),]
d$size = sqrt(sqrt(d$delta_long^2 + d$delta_lat^2))

ggplot(d, aes(x = long, y = lat, size = size)) +
  geom_segment(aes(xend = long + delta_long, yend = lat + delta_lat), arrow = arrow(length = unit(0.1,"cm")))

Edit

解决方案代码:

ggplot(d, aes(x = long, y = lat, size = size)) +
  geom_segment(aes(xend = long + delta_long, yend = lat + delta_lat), 
               arrow = arrow(length = unit(d$size/3, "cm"), type='closed')) +
  scale_size(range = c(0, 2))

我不能说这是您问题的完整解决方案,但至少它可以是一个开始。

ggplot(d, aes(x = long, y = lat, size = size)) +
  geom_segment(aes(xend = long + delta_long, yend = lat + delta_lat), 
              arrow = arrow(length = unit(0.7, "cm"))) + 
  scale_size(range = c(1, 2))

我的改变很小:更大的箭头和尺寸比例。如果您旨在避免过度绘图,则尺寸比例的上限是最重要的。

从现在开始,只保留箭头可能是个好主意,因为当尺寸小时,线条不可见。这是一个肮脏的黑客:

 ggplot(d, aes(x = long, y = lat, size = size)) +
   geom_segment(aes(xend = long + delta_long/100, yend = lat + delta_lat/100), 
               arrow = arrow(length = unit(0.7,"cm"))) + 
   scale_size(range = c(1, 2))

当然,大小值之间保持适当的视觉关系至关重要!否则,你的情节可能会产生误导。但这取决于数据,所以我无法给你进一步的建议。抱歉,如果这是一个显而易见的观点。

UPD:事实证明,unit() 函数是矢量化的,所以它可以解决问题!

ggplot(d, aes(x = long, y = lat, size = size)) +
  geom_segment(aes(xend = long + delta_long/100, yend = lat + delta_lat/100), 
              arrow = arrow(length = unit(d$size * 5,"cm"))) + 
  scale_size(range = c(1, 2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot 中按比例大小的箭头 的相关文章

  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to
  • 如何使用 R 中的函数 sqlSave() 将数据附加到具有 IDENTITY 主键的 SQL Server 表?

    我在SQL Server中创建了一个表 如下所示 CREATE TABLE testPK ID INT NOT NULL IDENTITY 1 1 PRIMARY KEY NumVal NUMERIC 18 4 现在我想使用 RODBC 函
  • R data.table 连接不等式条件

    我想使用 data table 包根据多个不等式条件对数据进行子集化 data table 手册中的示例展示了如何使用字符变量执行此操作 但不显示数字不等式 我还了解了如何使用子集函数来执行此操作 但我真的很想利用 data table 二
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt
  • 在`rmarkdown`中,如何在句子中添加图标?

    In rmarkdown 如何在句子中添加图标 例如如下 如何添加markdown icon单词 Markdown 和 is 之间 有一个很好的 R 包 可以轻松下载 RMarkdown 文档并将图标添加到其中 icons https gi
  • 如何使用autoconf重新生成配置文件?

    我使用 autoconf 重新生成配置文件 它有效 但是当我执行生成的配置文件时 configure 有一些错误消息 例如 configure line 3713 syntax error near unexpected token bla
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • 根据 R 数据框中的名称对列进行平均

    我想知道是否有一种有效的方法来获取每组的平均值类似命名的列谁的名字结尾为 1S and 2S ex ex1S ex2S at time 1并取每组的平均值类似命名的列谁的名字结尾为 1C or 2C ex ex1C ex2C at time
  • 空间数据xyz到矩阵

    我有一个大数据框 100 000 行 其中包含 LON LAT VALUE 我想将其转换为矩阵 EPSG 中的坐标 3035 我使用以下命令尝试了 reshape2 包 acast df lon lat value var value 效果
  • zsh:未找到命令:使用 Big Sur Mac 的终端上的 R

    我从官方 cran 网站安装了 R 我可以从 Rstudio 运行 R 但是当我尝试从终端使用 R 时 我得到以下结果 base ege Eges MBP R zsh command not found R base ege Eges MB
  • 按组计算连续行中的值之间的差异

    这是我的一个df 数据框 group value 1 10 1 20 1 25 2 5 2 10 2 15 我需要按组计算连续行中的值之间的差异 所以 我需要一个结果 group value diff 1 10 NA because the
  • 如何确定 R 包的作者?

    如何确定包的作者是谁 鉴于我们拥有这个广泛使用的代码库 我认为参考我在分析中使用的软件是合适的 有没有办法以编程方式检索作者和任何其他相关信息 在伪代码中 我想执行以下操作 references base 我怎样才能做到这一点 为了能够引用
  • 按不规则时间间隔对数据进行分组求和(R语言)

    我正在看这里的 stackoverflow 帖子 R 计算一组内的观察次数 https stackoverflow com questions 65366412 r count number of observations within a
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 如何自动启动我的 ec2 实例、运行命令然后将其关闭?

    我想每周对 redshift postgres 数据库中的数据运行一次机器学习模型 我使用以下命令将 R 脚本设置为休息 apiplumbr然后我将其设置为一项任务来管理pm2 我有它 所以任务会在ec2实例启动然后继续运行 要让 R 脚本
  • 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

    我正在尝试使用 R 中的 readr read csv 读取 csv 文件 我导入的 csv 文件大约有 150 列 我只包含示例的前几列 我希望将第二列从默认类型 我执行 read csv 时为日期 覆盖为字符或其他日期格式 GIS Jo
  • RStudio 如何确定控制台宽度,为什么它似乎总是出错?

    我刚刚发现wid lt options width在 RStudio 中 它似乎是我日常控制台使用中令人烦恼的根源 或者更确切地说 更接近根源 我应该先说一下 我目前使用的是 R 3 2 2 RStudio 0 99 491 Linux M
  • 如何绘制堆积比例图?

    我有一个数据框 x lt data frame id letters 1 3 val0 1 3 val1 4 6 val2 7 9 id val0 val1 val2 1 a 1 4 7 2 b 2 5 8 3 c 3 6 9 我想绘制一个
  • 无法部署 ShinyApp:readTableHeader 在“raw”上发现不完整的最后一行(使用默认值:en_US)

    我已经拼命尝试部署我的闪亮应用程序大约一周了 但不幸的是我无法停止收到以下消息 Warning message Error detecting locale Error in read table file file header head

随机推荐

  • 如何添加带有 ionic / ionic 2 / ionic 3 / ionic 4 / ionic 5 的本地cordova插件?

    我目前使用 ionic 和我的 cordova 插件同时开发一个应用程序 我想知道如何使用该文件plugins fetch json从本地文件系统更新我的插件 任何想法 使用 ionic 添加本地插件 ionic cordova plugi
  • 运行两个异步函数而不互相阻塞

    我有一个异步函数 我想 并行 运行另一个异步函数 但我需要在某个时刻去做在第一个函数内 我见过很多例子 但它们都同时启动两个功能 这不是我想要的 我创建了这个简单的示例来说明我想要实现的目标 以及我尝试过的目标 import asyncio
  • 使用实体框架代码优先的 XML 字段

    我将实体框架与 Code First 模型一起使用 宠物项目 我喜欢编辑简单的类并自动更新我的架构 我有一堂课如下 Table Polygons public class Polygon public int PolygonId get s
  • std:: 在 C++/17 中没有成员“文件系统”

    我正在尝试包括
  • 无法在AWS中使用RDS创建弹性Beanstalk环境

    我正在尝试使用现有的 VPC 创建新的 ELB 环境 但我无法创建环境并出现以下错误 错误创建名为 sg 5xxxxxxx 的安全组失败原因 资源创建已取消 错误 创建 EIP xx xxx xxx xxx 失败 原因 资源创建已取消 错误
  • 我可以在R中的ggplot2中使用格子中的带状疱疹吗

    可以使用shingles定义特定范围ggplot2 据我所理解shingles是生成组的一种方法 我们能否创造这样的shingles 并将它们用于ggplot2 facet grid获得图表 根据评论 ggplot无法绘制木瓦 以晶格在条带
  • StringIndexOutOfBoundsException

    我在让方法在 Java 中正常工作时遇到一些问题 在程序中 我创建了一个由许多不同长度的不同单词组成的数组 我正在研究的方法应该读取用户输入的字长 字母和位置 然后 Java 将打印出与这三个参数匹配的任何单词 例如 如果用户输入字长 4
  • 如何在另一个目录中分离托管和非托管 DLL

    我的发布文件夹是 MyApp exe MyManagedDLL dll NativeDLL dll MyApp 使用托管 dll 它通过 pinvoke 调用本机 dll 我尝试将它们移动到另一个子文件夹 并再次引用托管 dll 当我运行我
  • 查找本地 git 分支的远程父分支

    如何获取遥控器的名称git本地的分支git当前提交已分支 我假设这是一个 4 步过程 前三步可能如下 Step One Get the name of the current branch in the local git repo git
  • 如何在 swagger yaml 中定义 HashMap> 属性?

    我正在使用 swagger 在 Java 和 Type 脚本中生成类 我在使用对象列表作为值定义地图属性时遇到问题 我尝试定义如下 DataMap type object additionalProperties type array Th
  • golang中的多类型解码器

    我有一个 XML 文档 某些字段具有自定义格式 例子
  • 将 yz 和 xz 网格添加到 scatterplot3d

    在使用该功能时scatterplot3d 来自 scatterplot3d 包 grid TRUE只绘制 XY 平面的网格 看一下函数源代码只有X和Y分量 我还想绘制 YZ 和 XZ 平面的网格 如下图所示 我在图像中搜索了带有这些网格的
  • 使用 Objective-C 加密和解密密码

    如何加密 nsstring 并将其存储在文件中 以及如何解密 请建议我应该使用什么API 这是我用于加密的函数 DES cfb64 encrypt 无符号 char pchInputData 无符号 char pchOutCipher 大小
  • 使用可变宽度 div 时的 CSS 文本省略号

    我想知道当父 div 和相邻 div 不允许足够的空间时 是否有任何方法可以让浮动 div 中的文本获得省略号 例如 div class parent div div class text div This is text I d like
  • 如何在django频道休息框架中订阅模型的所有实例?

    我想将 API 的行为更改为 JSON 触发 从浏览器调用 但由于我对 Python 的了解有限 我什至无法从 Python 客户端调用它 有人可以帮我怎么做吗manual https github com hishnash djangoc
  • 为什么 $locationChangeStart 在页面加载时被触发?

    最近 我在生产中偶然发现了一段非常奇怪的代码 它似乎利用了这样一个事实 在某些情况下 Angular 可能会触发 locationChangeStart初始页面加载时发生的事件 此外next参数值将等于current价值 这对我来说似乎很奇
  • ColdFusion 9 CFZIP 从 ColdFusion 11 CFZIP 创建的 Zip 文件上出现解压缩错误

    我支持的 ColdFusion 应用程序安装在两个不同的位置 一个位置运行带有 ColdFusion 9 和 MS SQL Server 2008 的 Windows Server 2008 另一个位置运行带有 ColdFusion 11
  • TinyMCE 将列表框项目渲染为 html

    我创建了一个 TinyMCE 插件 需要列表框项目来显示 html 这是我的插件 editor addButton icons title Foo text Foo type button onclick function editor w
  • 如何查看手机是否有GPS设备?

    我正在尝试找到一段代码可以告诉我Android手机是否有GPS设备 我在搜索结果中获得的大多数示例都表明 GPS 是否启用 我感兴趣的是Android手机是否有物理GPS设备 Thanks 从 API 级别 8 Froyo 开始 您可以使用
  • ggplot 中按比例大小的箭头

    基于 ggplot2 构建密封件示例 http docs ggplot2 org current geom segment html 我正在尝试更改箭头的粗细 以便它们的整体大小更好地反映数据变量 我可以指定长度和厚度 但不知道如何更改箭头