我对ggplot2中的传说有疑问.我设法在同一图表中绘制三条线,并想要添加使用三种颜色的图例.这是使用的代码
library(ggplot2)
require(RCurl)
link<-getURL("https://dl.dropbox.com/s/ds5zp9jonznpuwb/dat.txt")
datos<- read.csv(textConnection(link),header=TRUE,sep=";")
datos$fecha <- as.POSIXct(datos[,1], format="%d/%m/%Y")
temp = ggplot(data=datos,aes(x=fecha, y=TempMax,colour="1")) +
geom_line(colour="red") + opts(title="TITULO") +
ylab("Temperatura (C)") + xlab(" ") +
scale_y_continuous(limits = c(-10,40)) +
geom_line(aes(x=fecha, y=TempMedia,colour="2"),colour="green") +
geom_line(aes(x=fecha, y=TempMin,colour="2"),colour="blue") +
scale_colour_manual(values=c("red","green","blue"))
temp
Run Code Online (Sandbox Code Playgroud)
和输出

我想添加一个带有三种颜色的图例和变量的名称(TempMax,TempMedia和TempMin).我试过了
scale_colour_manual
Run Code Online (Sandbox Code Playgroud)
但找不到确切的方法.
遗憾的是,原始数据已从链接网站中删除,无法恢复.但它们来自具有此格式的meteo数据文件
"date","Tmax","Tmin","Tmed","Precip.diaria","Wmax","Wmed"
2000-07-31 00:00:00,-1.7,-1.7,-1.7,-99.9,20.4,20.4
2000-08-01 00:00:00,22.9,19,21.11,-99.9,6.3,2.83
2000-08-03 00:00:00,24.8,12.3,19.23,-99.9,6.8,3.87
2000-08-04 00:00:00,20.3,9.4,14.4,-99.9,8.3,5.29
2000-08-08 00:00:00,25.7,14.4,19.5,-99.9,7.9,3.22
2000-08-09 00:00:00,29.8,16.2,22.14,-99.9,8.5,3.27
2000-08-10 00:00:00,30,17.8,23.5,-99.9,7.7,3.61
2000-08-11 00:00:00,27.5,17,22.68,-99.9,8.8,3.85
2000-08-12 00:00:00,24,13.3,17.32,-99.9,8.4,3.49
Run Code Online (Sandbox Code Playgroud) 我想知道如何使它在下面的示例数据集中的x和y在水平轴上的每个框架元素的垂直轴上绘制.我如何使用ggplot2执行此操作?
x,y =变量,frame = YYYYMM
示例数据:
df <- structure(list(x = c(0.000892333625290767, 0.0161153931761482,
0.0188150880795816, 0.0268699106638318, 0.018657330651898, 0.0101065034206662,
0.00154410447630379), y = c(1.35172948829027, 0.59654026447333,
0.685835030118683, 0.741545898152761, 1.09653338596292, 0.119448208345102,
0.104092642854814), frame = c(200912, 201001, 201002, 201003,
201004, 201005, 201006)), .Names = c("x", "y", "frame"), row.names = c("1",
"2", "3", "4", "5", "6", "7"), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我已经能够在一行中绘制一个,但似乎它没有将我的框架识别为分类(不是它,我也不知道如何将其更改为此类).
p <- ggplot(df, aes(x=frame, y=x))
p + geom_line()
Run Code Online (Sandbox Code Playgroud) 我使用 ggplot 散点图 2 个数据集,并希望在左上角显示图例。我尝试了一些代码,但没有用。我不确定为什么会这样。
ggplot(mf, aes(log10(mf[,2]),mf[,1]))
+ ggtitle("Plot")
+ geom_point(color = "blue") + theme(plot.margin = unit(c(1,2,1,1), "cm"))
+ xlab("xxx") + ylab("yyy")
+ theme(plot.title = element_text(size=18,hjust = 0.5, vjust=4))
+ geom_point(data=mf2,aes(log10(mf2[,2]),mf2[,1]),color="red")
+ theme(axis.title.x = element_text(size = rel(1.3)))
+ theme(axis.title.y = element_text(size = rel(1.3)))
+ scale_color_discrete(name = "Dataset",labels = c("Dataset 1", "Dataset 2"))
Run Code Online (Sandbox Code Playgroud)
我根本找不到在这个特定的 ggplot 中用 R 上的 ggplot2 绘制图例面板的方法。只是想让它出现。
就上下文而言,我正在绘制样品的化学丰度与元素的原子序数。
作为背景,我尝试了很多这里描述的事情:
包括其中的链接,但是无法为我的特定数据集找到解决方案。
我知道问题可能出在数据集的结构内,因为我已经能够用其他数据来做到这一点,但我无法解决它。我也知道问题应该与下面代码中描述的 theme() 有关,因为当我使用默认的 ggplot 配置图例时,实际上会出现。我使用这个个性化的主题来保持我的工作的一致性。
这是我迄今为止去除化妆品的方法:
ggplot(atomic, aes(x=atomic$Z, y = atomic$avg, group=1), fill = atomic$Z) +
Run Code Online (Sandbox Code Playgroud)
geom_point(data=atomic, aes(x=atomic$Z, y=atomic$avg, group=1, color="black"), size=0.5, alpha=1, shape=16 ) +
Run Code Online (Sandbox Code Playgroud)
geom_line(data=atomic, aes(x=atomic$Z, y=atomic$avg, group=1), color="black", linetype= "dashed") +
Run Code Online (Sandbox Code Playgroud)
geom_point(data=atomic, aes(x=atomic$Z, y=atomic$SDSS, group=1, color="#00ba38"), size=5, alpha=1, shape=16, color="#00ba38") +
geom_point(data=atomic, aes(x=atomic$Z, y=atomic$HE22, group=1, color="#619cff"), size=5, alpha=1, shape=16, color="#619cff") +
geom_point(data=atomic, aes(x=atomic$Z, y=atomic$HE12, group=1, color="#F8766D"), size=5, alpha=1, shape=16, color="#F8766D") +
Run Code Online (Sandbox Code Playgroud)