热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

难以获得混合线a和指向ggplot2中颜色和形状的点图例

如何解决《难以获得混合线a和指向ggplot2中颜色和形状的点图例》经验,为你挑选了1个好方法。

所以我一直在努力为这个情节找到一个正确的传奇.我的最终目标是显示线条颜色和点颜色的图例.我可以让传说中的线条工作正常,但是想知道我也是如何得到点数(包括点的形状颜色)?任何工作或建议非常感谢!

Tempx<-c(20, 22, 24, 26, 28, 30, 32, 34)
Tempx<-rep(Tempx,2)


Temp<-rnorm(1000,28,2)
var1<-rnorm(1000,25,5)
Data<-data.frame(Temp,var1)

Temp<-rnorm(1000,28,2)
var1<-rnorm(1000,12,5) 
Data2<-data.frame(Temp,var1)

a1<-1.05*Tempx
a2<-0.5*Tempx
a1low<-0.95*Tempx
a1high<-1.15*Tempx
a2low<-0.4*Tempx
a2high<-0.6*Tempx


plot1<-ggplot(NULL, aes(Temp, var1)) + 
  geom_point(data = Data, colour="grey60", size=1.5, shape=1, show.legend=TRUE) +
  geom_point(data = Data2, shape= 16, size=1, show.legend=TRUE) +
  geom_line(aes(x=Tempx,y=a1, colour="grey50"), size=1.75, show.legend=TRUE) +
  geom_line(aes(x=Tempx,y=a2, colour="black"), size=1.75, show.legend=TRUE) +
  geom_line(aes(x=Tempx,y=a1low), colour="grey50",size=1.25, linetype="longdash") +
  geom_line(aes(x=Tempx,y=a1high), colour="grey50",size=1.25, linetype="longdash") +
  geom_line(aes(x=Tempx,y=a2low), colour="black",size=1.25, linetype="longdash") +
  geom_line(aes(x=Tempx,y=a2high), colour="black",size=1.25, linetype="longdash") +
  scale_shape_manual(values=c(1, 16)) +
  scale_color_manual(labels = c("low", "high"), values=c('black','grey50')) +
  theme_bw()+
  theme(axis.line.x = element_line(colour = "black"),
        axis.line.y = element_line(colour = "black"),
        axis.text.x = element_text(margin=unit(c(0.4,0.4,0.4,0.4), "cm")), 
        axis.text.y = element_text(margin=unit(c(0.4,0.4,0.4,0.4), "cm")),
        axis.title.x = element_text(margin = margin(t = -6)),
        axis.title.y = element_text(margin = margin(t = -6)),
        axis.text=element_text(size=13),
        text = element_text(size=14),
        plot.title = element_text(size=16, hjust=0),
        axis.ticks.length = unit(-0.1,"cm"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank()) +
  scale_x_continuous(name = "Temperature", breaks = c(20, 22, 24, 26, 28, 30, 32, 34), expand=c(0,0), limits=c(20,34))+
  scale_y_continuous(name = "Variable 1", expand = c(0, 0), limits = c(0, 40)) +
  ggtitle("Title")

plot1

eipi10.. 5

您可以通过将数据从宽格式转换为长格式来显着缩短代码.然后你只需要一个电话geom_point,geom_line下面就是一个例子.dat1并分别dat2包含点和主线.dat1已经是长格式了.我们转换dat2dat2long为好.我已经放入dat3long了一个单独的数据框,因为我们不需要将这些值映射到产生图例的美学.因此,我geom_line对这些线路使用了单独的调用,并且我对颜色进行了硬编码.

library(tidyverse)

# Create long data frame for point data
dat1 = bind_rows(list(a1=Data, a2=Data2), .id="Source")

# Create long data frames for lines data
dat2 = data.frame(Tempx, a1, a2)
dat3 = data.frame(Tempx, a1low, a1high, a2low, a2high)
dat2lOng= dat2 %>% gather(Source, value, -Tempx)
dat3lOng= dat3 %>% gather(Source, value, -Tempx)

ggplot() +
  geom_point(data=dat1, aes(Temp, var1, shape=Source, colour=Source)) +
  geom_line(data=dat2long, aes(x=Tempx, y=value, colour=Source)) +
  geom_line(data=dat3long, aes(x=Tempx, y=value, group=Source), linetype=2, 
            colour=rep(c("red","blue"), each=2*length(Tempx))) +
  scale_colour_manual(values=c("red","blue")) +
  theme_bw()

在此输入图像描述

如果您的目标是绘制置信区间,则可以执行以下操作:

ggplot(data=dat1, aes(Temp, var1, shape=Source, fill=Source, colour=Source)) +
  geom_point() +
  geom_smooth(method='lm') +
  theme_bw()

在此输入图像描述



1> eipi10..:

您可以通过将数据从宽格式转换为长格式来显着缩短代码.然后你只需要一个电话geom_point,geom_line下面就是一个例子.dat1并分别dat2包含点和主线.dat1已经是长格式了.我们转换dat2dat2long为好.我已经放入dat3long了一个单独的数据框,因为我们不需要将这些值映射到产生图例的美学.因此,我geom_line对这些线路使用了单独的调用,并且我对颜色进行了硬编码.

library(tidyverse)

# Create long data frame for point data
dat1 = bind_rows(list(a1=Data, a2=Data2), .id="Source")

# Create long data frames for lines data
dat2 = data.frame(Tempx, a1, a2)
dat3 = data.frame(Tempx, a1low, a1high, a2low, a2high)
dat2lOng= dat2 %>% gather(Source, value, -Tempx)
dat3lOng= dat3 %>% gather(Source, value, -Tempx)

ggplot() +
  geom_point(data=dat1, aes(Temp, var1, shape=Source, colour=Source)) +
  geom_line(data=dat2long, aes(x=Tempx, y=value, colour=Source)) +
  geom_line(data=dat3long, aes(x=Tempx, y=value, group=Source), linetype=2, 
            colour=rep(c("red","blue"), each=2*length(Tempx))) +
  scale_colour_manual(values=c("red","blue")) +
  theme_bw()

在此输入图像描述

如果您的目标是绘制置信区间,则可以执行以下操作:

ggplot(data=dat1, aes(Temp, var1, shape=Source, fill=Source, colour=Source)) +
  geom_point() +
  geom_smooth(method='lm') +
  theme_bw()

在此输入图像描述


推荐阅读
  • Highcharts翻译系列之二十:曲线图例子(二)
    Highcharts翻译系列之二十:曲线图例子(二)代码 ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • Tkinter Frame容器grid布局并使用Scrollbar滚动原理
    本文介绍了如何使用Tkinter实现Frame容器的grid布局,并通过Scrollbar实现滚动效果。通过将Canvas作为父容器,使用滚动Canvas来滚动Frame,实现了在Frame中添加多个按钮,并通过Scrollbar进行滚动。同时,还介绍了更新Frame大小和绑定滚动按钮的方法,以及配置Scrollbar的相关参数。 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
author-avatar
AmenTo_AT
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有