编号点标签加上散点图中的图例

2023-12-02

我正在尝试在 R 中的散点图中标记点(ggplot2) 使用数字 (1, 2, 3, ...),然后将数字与图例中的名称相匹配 (1 - Alpha, 2 - Bravo, 3 - Charlie...),作为处理太多的方法,情节上的标签太长。

我们假设这是 a.df:



Name      X Attribute   Y Attribute  Size Attribute  Color Attribute
Alpha     1             2.5          10              A
Bravo     3             3.5          5               B
Charlie   2             1.5          10              C
Delta     5             1            15              D
  

这是一个标准的散点图:



ggplot(a.df, aes(x=X.Attribute, y=Y.Attribute, size=Size.Attribute, fill=Colour.Attribute, label=Name)) +
   geom_point(shape=21) +
   geom_text(size=5, hjust=-0.2,vjust=0.2)
  

有没有办法改变如下?

  • 有标有数字的散点图(1,2,3...)
  • 绘图旁边有一个图例,将绘图标签 (1,2,3...) 分配给 a.df$Name

在下一步中,我想为点大小和颜色分配其他属性,这可能会排除一些“黑客行为”。


这是一个替代解决方案,它将标签绘制为geom_text。我借用过ggplot2 - 在绘图之外进行注释.

library(MASS)  # for Cars93 data
library(grid)
library(ggplot2)

d <- Cars93[1:30,]
d$row_num <- 1:nrow(d)
d$legend_entry <- paste("  ", d$row_num, d$Manufacturer, d$Model)

ymin <- min(d$Price)
ymax <- max(d$Price)
y_values <- ymax-(ymax-ymin)*(1:nrow(d))/nrow(d)

p <- ggplot(d, aes(x=Min.Price, y=Price)) +
        geom_text(aes(label=row_num)) +
        geom_text(aes(label=legend_entry, x=Inf, y=y_values, hjust=0)) +
        theme(plot.margin = unit(c(1,15,1,1), "lines"))

gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name == "panel"] <- "off"
grid.draw(gt)

R plot

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

编号点标签加上散点图中的图例 的相关文章

随机推荐

  • Apache Camel 中的集群:多个 JVM 相同的 CamelContext

    我有一个部署在集群上的应用程序 根据环境 集群可能有 2 或 4 个 JVM 该应用程序具有我们在所有 JVM 上部署的相同 CamelContext 因此 所有 JVM 都有相同的路由 对于 FTP 路由 这很好 因为它具有竞争力 并且只
  • C# 中的别名关键字(如 typedef)?

    我有 2 个库 在不同平台上有不同的大小写 似乎其他所有内容都是相同的 方法名称 参数顺序等 我如何创建一个别名 以便我当前的平台 a 拼写在编译时起作用对于平台 b 我真的不想为大小写差异制作一个包装器 您可以使用 using 关键字创建
  • C# 到 VB6 COM 事件(“对象或类不支持事件集”)

    真的是用这个把我的头发拉出来了 我有一个 C 项目 其接口定义为 Externally Accessible API InterfaceType ComInterfaceType InterfaceIsIDispatch public in
  • 如何在 WiX 中安装时填充组合框?

    编辑 我已经更新了下面的代码 现在它可以工作了 感谢罗布的回答 我找到了几页展示如何执行此操作 http www cmcrossroads com content view 13160 120 http www mail archive c
  • 带有国家点击和缩放功能的 d3 世界地图几乎无法正常工作

    我正在制作一张具有点击缩放功能的世界地图 当点击一个国家时 地图会放大 但该国家并不总是居中 当你点击并重复时 也会发生同样的情况 它似乎永远不会提供相同的结果 注意 如果禁用过渡功能 缩放和居中确实有效 只有在添加旋转时才会显示不正确 我
  • 隐藏用户表单后如何返回或重新显示它?

    我在 UserForm2 的一个命令按钮中包含以下代码 Private Sub CButton1 Click UserForm1 Show Me Hide End Sub Now Userform1显示 然后我在 Userform1 的一个
  • 如何打印使用 Apache Poi 和 java 制作的工作簿文件?

    我在 eclipse 中创建一页工作簿文件 需要打开打印对话框并打印这些文件 我了解如何打开打印对话框和所有内容 我只是找不到如何告诉系统它是我想要打印的工作簿文件 wb 因此 除非它知道我想用它打印什么 否则打开对话框是行不通的 有人至少
  • 未在此范围内声明的变量

    我正在为类制作一个程序 由于某种原因 当在类定义中声明它时 它给了我这个错误 错误 在函数中 void setMessageBuffer std string 错误 message 在这方面没有申明 class apple private
  • 是否可以在不使用 win32 API 库的情况下在 C# 中获取 LAN 中连接的 IP 地址列表?

    我正在尝试获取在 LAN 中连接的 IP 地址列表 是否可以在不使用 win32 API 库 Netapi32 dll 的情况下获得 有什么想法可以在不使用非托管 win32 动态库的情况下获得 Windows 7 操作系统的目标 您可以使
  • UIButton 与 UITableViewCellSelectionStyleGray 选择颜色

    我试图将 UIButton 的选定颜色设置为 UITableViewCellSelectionStyleGray 的颜色 问题是 UIButton 的选择颜色无法设置 只能设置图像 有谁知道如何使用 UITableViewCellSelec
  • 如何在 C# Windows 应用程序中的表单之间传递值?

    我有两个表单 A 和 B 表单 A 是应用程序的默认启动表单 我在 Form A 中做了一些事情 然后我想并行运行 Form B 然后通过 从表单 A 到表单 B 中的方法的参数 How Ian 给出了一些示例代码 但我想提出更广泛的观点
  • 使用 Excel 2016 将范围保存为图片

    该代码的目的是将一系列单元格保存为桌面上的图片 该文件已创建 但不包含任何单元格数据 它是具有范围相对大小的空白图像 该问题出现在 Office 2016 中 在 2013 中有效 Sub SendSnapshot2 Dim strRng
  • 将 CAGradient 遮罩层应用到 UITextView

    我有一个 UITextView 带有可滚动文本 我试图对其应用渐变层 因此可见文本的底部总是稍微淡出 这是我的代码 CAGradientLayer maskLayer CAGradientLayer layer maskLayer colo
  • 获取 EditText 中按下的键

    I want to know which key has been pressed in an EditText For example if a is pressed I want to get the value as a How ca
  • 在对象中按名称查找嵌套属性的最佳方法

    我有一个对象 dataLayer 它可以增加和减少长度 具体取决于您访问的页面数量 我想要 循环遍历目标并查找属性名称 ecommerce 我特别想找到 brandcode 的值 必须与 pagetitle Login Page 位于同一对
  • 如何使用 UIImage(contentsOfFile:String) 方法从 Images.xcassets 文件夹加载图像

    我知道之间的区别UIImage named String and UIImage contentsOfFile String 我刚刚保存了超过 200MB 的图像图片 xcassets文件夹 我发现我的应用程序内存使用量很大 超过 500
  • 无法从 java jar 运行 python 脚本

    在 IntelliJ 中工作时一切正常 但在我构建 jar 之后它就停止了 起初 只是我忘记将它放入 jar 构建配置中 但现在在确保它在那里之后 我仍然无法运行它 这些是我尝试的方法 InputStream script mainView
  • 用公式逻辑决定游戏结果

    我正在努力成为一名更好的编码员 其中包括摆脱我的 硬编码 习惯 以保持我的程序动态且易于维护 现在我正在编写一个简单的石头剪刀布游戏作为练习 import time validoptions rock paper scissors u1in
  • 我存储了刷新令牌,如何使用它来刷新我的访问令牌

    根据我的阅读 我可以看到curl 使用我的刷新令牌获取access token 我如何使用 python 重用我的刷新令牌 如果这是重复的 谢谢并抱歉 如果您使用的是 Google API Python 客户端库 则当您的访问令牌过期时 将
  • 编号点标签加上散点图中的图例

    我正在尝试在 R 中的散点图中标记点 ggplot2 使用数字 1 2 3 然后将数字与图例中的名称相匹配 1 Alpha 2 Bravo 3 Charlie 作为处理太多的方法 情节上的标签太长 我们假设这是 a df Name X At