向 ggplot 添加图例

2024-03-10

这个问题是这篇文章的后续问题:上一篇文章 https://stackoverflow.com/questions/21531230/using-geom-path-from-ggplot-library

我有12个变量,M1、M2、...、M12,为此我计算了某些统计数据x and y.

 df = data.frame(model = factor(paste("M", 1:28, sep = ""), levels=paste("M", 1:28, sep = "")), a = runif(28, 1, 1.05), b = runif(28, 1, 1.05))

 levels = seq(0.8, 1.2, 0.05)

这是情节:

 ggplot(data=df) + 
   geom_polygon(aes(x=model, y=a, group=1), color = "red", fill = NA) + 
   geom_polygon(aes(x=model, y=b, group=1), color = "blue", fill = NA) +
   coord_polar() + 
   scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
   theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())

我想在图中添加一个图例,其中有两条线,一条红色标记为“a”,一条蓝色标记为“b”。

我尝试使用scale_colour_manual如下:

scale_colour_manual(values = c("red", "blue"), labels = c("a", "b"))

但它似乎不起作用。任何帮助,将不胜感激。谢谢!


library(reshape2)
df1 <- melt(df, id="model")

levels = seq(0.8, 1.2, 0.05)

ggplot(data=df1) + 
  geom_polygon(aes(x=model, y=value, group=variable, colour=variable), fill = NA) + 
  scale_colour_manual(values=c("a"="blue", "b"="red")) +
  coord_polar() + 
  scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
  theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 ggplot 添加图例 的相关文章

随机推荐

  • 缩放和平移 - 将 d3 代码升级到 d3.v4

    我一直在尝试将此代码升级到 d3 的 v4 但没有成功 function xnr selector var coordinates id 1 x 120 16353869437225 y 160 974180892502466 id 2 x
  • 这在 C# 或 LINQ 中意味着什么? - ( () => )

    我正在阅读 Jeffrey Palermo 的书并遇到了这种语法 private void InitializeRepositories Func
  • 使用 XPATH 在具有命名空间的 XML 中选择节点时出现问题

    我有以下 XPATH 行 det nItem 1 prod cProd 使用以下命令成功选择所需的节点XPath 可视化工具 http xpathvisualizer codeplex com 它会自动识别命名空间 您可以定义要选择的命名空
  • Eclipse 在哪里存储有关启动哪个工作区的信息?

    当我启动 Eclipse 时 它 会从我创建的工作区之一开始 并选择 不再询问 通常 Eclipse 会在启动过程中询问从哪个工作区开始 因此它必须存储要使用的工作空间 它在哪里存储这条信息 In HOME eclipse org ecli
  • VB在特定记录上打开表单

    我正在使用 Microsoft Access 我想在单击按钮时打开特定 ID 的表单 我可以在 Do open 表单命令中指定 id 吗 下面的代码打开一个表单 但随后打开一个对话框 要求输入 id 有人有什么想法吗 Private Sub
  • SwiftUI 问题将变量传递到另一个视图

    我想将浮点变量从一个视图传递到另一个新视图 在下面的代码中 有一个名为 mhzValue 的浮点值 它是通过滑块设置的 滑块更改该值 然后文本显示在视图中 当用户点击导航按钮显示新视图时 我希望能够获取 mhzValue 并将其显示在文本框
  • 在 CosmosDb 中使用 BulkExecutor 时出现无效索引异常

    当我尝试使用 BulkExecutor 更新 CosmosDb 中的属性之一时出现错误 错误消息是 索引超出范围 必须为非负数且小于集合的大小 参数名称 索引 重要的一点 我没有在我的集合上定义分区键 这是我的代码 SetUpdateOpe
  • 将插件插入流体模板?

    扩展名客搜索 https typo3 org extensions repository view ke search有一个搜索字段插件 我想将其插入到我的流体模板中并显示在每个页面上 我对此很陌生 不知道如何开始 任何帮助表示赞赏 您可以
  • 如何覆盖 django AuthenticationForm 输入 css 类?

    我有一个使用基本 django 注册框架的 django 站点 我的登录页面工作正常 但我想更改输入上的 css 类 传递到登录页面的表单看起来是一个 AuthenticationForm 类 将 css 类添加到用户名和密码字段的好方法是
  • Visual Basic 6中如何保存断点

    如何在 Visual Basic 6 中保存断点 有任何插件吗 现在我有 MZ Tools 但不幸的是它们不保存断点 我不确定第三方工具 但您始终可以使用 Debug Assert False 完成后记得将其删除
  • For 语句,每第 1000 次演练,做某事

    我正在遍历 For 循环 100 000 次 这个数字可以多样化 每第一千次我都想做一些特别的事情 那些我在其他演练中没有做的事情 像这样的东西 for int i 0 i lt 100000 i doTasks Normal if i 1
  • git-http-backend 与 apache2.4 Centos 7

    我尝试在我的 apache 服务器上设置 Git 服务器 但它不起作用 我得到了以下 git conf SetEnv GIT PROJECT ROOT var www html git project1 SetEnv GIT HTTP EX
  • Java 8 Stream API 中的多个聚合函数

    我有一个类定义如下 public class TimePeriodCalc private double occupancy private double efficiency private String atDate 我想使用 Java
  • 如何防止在 IE9 中加载页面时出现“无法获取属性‘dir’的值:对象为 null 或未定义”错误

    我有一个 Dojo 1 7 4 应用程序 在 IE9 中加载页面时出现 无法获取属性 dir 的值 对象为 null 或未定义 错误 我使用的是 AMD 版本 当它必须单独加载所有文件时 不会发生错误 我可以控制的所有代码都包含在 dojo
  • Kotlin:抑制未使用的属性?

    我的源代码如下 有警告 从未使用属性 我添加了 Suppress UNUSED PARAMETER Suppress UNUSED PROPERTY GETTER Suppress UNUSED PROPERTY SETTER 然而 它们都
  • 关闭 vba 生成的 Excel 绘图上的标记阴影

    我正在将一些用于在 Excel 中生成散点图的代码从 Win 7 Excel 2010 移植到 OS X Excel 2011 在 Mac 上 数据点显示有阴影 我不想要阴影 也不知道如何摆脱它 Using 这个工作表 http dl dr
  • C++ 指针数组的内存分配

    我有一个关于内存分配的问题 假设我创建了一个像这样的指针数组 int numbers new int 1024 1024 我原以为这需要 8MB 内存 Mac 64 位上为 8 字节指针 但事实并非如此 仅当为每个指针赋值时才分配内存 因此
  • 注册一个全局钩子,检测鼠标是否拖动文件/文本

    我知道有可能为鼠标注册全局钩子 http www codeproject com KB cs globalhook aspx移动 按钮单击 滚动等 但我想知道是否有任何方法可以检测用户是否实际上使用全局挂钩拖动文件或文本 或其他内容 似乎找
  • 从三地址代码到 JVM 字节码的代码生成

    我正在研究 Renjin 的字节码编译器 R 代表 JVM 并尝试将中间三地址码 TAC 表示形式转换为字节码 我查阅过的所有有关编译器的教科书都讨论了代码生成期间的寄存器分配 但我还没有找到任何用于在基于堆栈的虚拟机 如 JVM 上生成代
  • 向 ggplot 添加图例

    这个问题是这篇文章的后续问题 上一篇文章 https stackoverflow com questions 21531230 using geom path from ggplot library 我有12个变量 M1 M2 M12 为此