当前位置: 首页 > 知识库问答 >
问题:

带有颜色和图例的简单ggplot2情况

桑鸿志
2023-03-14

试图用ggplot2绘制一些图,但无法理解AES中定义的颜色是如何工作的。与审美长度的错误作斗争。

我尝试在主ggplot调用aes中定义颜色来给出传说,但也在geom_line aes中定义颜色。

# Define dataset:
number<-rnorm(8,mean=10,sd=3)
species<-rep(c("rose","daisy","sunflower","iris"),2)
year<-c("1995","1995","1995","1995","1996","1996","1996","1996")

d.flowers<-cbind(number,species,year)
d.flowers<-as.data.frame(d.flowers)

#Plot with no colours:
ggplot(data=d.flowers,aes(x=year,y=number))+
  geom_line(group=species)             # Works fine

#Adding colour:
#Defining aes in main ggplot call:
ggplot(data=d.flowers,aes(x=year,y=number,colour=factor(species)))+
  geom_line(group=species)      
# Doesn't work with data size 8, asks for  data of size 4

ggplot(data=d.flowers,aes(x=year,y=number,colour=unique(species)))+
  geom_line(group=species)         
# doesn't work with data size 4, now asking for data size 8

我怎么能想得更清楚呢?

共有1个答案

成浩漫
2023-03-14

以下是@Kath的评论作为解决方案。一开始学习起来很微妙,但在aes()内部或外部的内容才是关键。这里有更多的信息-什么时候审美进入aes()内部或外部?和许多好的可谷歌的“ggplot美学”为中心的页面,有许多例子可以剪切、粘贴和尝试。

library(ggplot2)
number <- rnorm(8,mean=10,sd=3)
species <- rep(c("rose","daisy","sunflower","iris"),2)
year <- c("1995","1995","1995","1995","1996","1996","1996","1996")
d.flowers <- data.frame(number,species,year, param1, param2)
head(d.flowers)

 #number   species year 
 #1 8.957372      rose 1995     
 #2 7.145144     daisy 1995     
 #3 9.864917 sunflower 1995      
 #4 7.645287      iris 1995     
 #5 4.996174      rose 1996      
 #6 8.859320     daisy 1996     

 ggplot(data = d.flowers, aes(x = year,y = number,
                          group = species, 
                         colour = species)) + geom_line()  
 #note geom_point() doesn't need to be grouped - try:
  ggplot(data = d.flowers, aes(x = year,y = number, colour = species)) + geom_point() 
 类似资料:
  • 问题内容: 在图中,如何用不同的颜色为高于阈值的所有值上色?像高于均值+标准或均值+ 2 * std的所有内容一样? 问题答案: 使用a是正确的方法,但是您也可以使用掩码数组在一行代码中完成一个简单的版本: 这样做的弊端在于它会使用过滤后的数据绘制原始数据,因此有时基础曲线可能会显示出来,具体取决于渲染方式。我在这里把红线弄得有点粗,但是我不确定它是否有所作为。好处是,它基本上是一行,阈值为。 这

  • 已经搜索了所有相关的线程,但找不到解决方案。 这是我的代码和附加的绘图结果: 这导致了这个情节: 如您所见,所有图例图标看起来都一样。我想要的是点显示为点,两条线(“回归”和“趋势线”)显示为线。 我试着用 但这再次以相同的方式给了我所有图标,我不知道如何区分它们 我是R的新手,这是我的第一个“复杂”情节。尝试通过在线帮助和谷歌找出大多数问题,但找不到解决此问题的方法。谢谢大家的时间和帮助! 这里

  • 根据android iconography文档,状态栏中的图标应该是完全白色的,背景是透明的。然而,即使是内置的图标似乎也不都遵循这种模式。信号质量(适用于wifi和电池)、电池指示器和其他一些新设备上的图标上有全息蓝色背景。这个颜色是不是内置在图标本身?我正在寻找实现一个状态栏图标与我的应用程序,将表明一个连接到外部(蓝牙)设备的状态。我计划做我的公司徽标(它是一个相当简单的,大部分是圆形的形状

  • 我知道我可以使用以下代码设置图例项目的设置颜色:

  • 这看起来非常简单,我是JavaFX新手,我无法更改JavaFX TreeView的背景和文本颜色(添加在GridPane中)。我已经用填充树项的根节点初始化了树视图构造函数。 在. css中: 在代码中 字体设置了,但没有其他设置。我似乎找不到任何人改变treeview背景的例子——在select和hover上做了很多奇特的改变。有什么想法吗?

  • 总体上对matplotlib真的很困惑。我通常只使用导入matplotlib.pyplot作为plt。 然后做plt.figure(),plt.scatter(),plt.xlabel(),plt.show()等等。但是我在谷歌上搜索如何做一些事情,比如用颜色映射图例,我得到了所有这些包括ax的例子。但是有plt.legend(),matplotlib留档中的例子只是显示plt.legend(句柄