fri*_*dde 6 csv r legend ggplot2
我正在AESRD 2013 - SCO Bitumen - 7y.csv 这个文件夹中生成一个ggplot2线图.该文件根据我的意愿在网站上自动创建.这些是显示一些生产值的几个时间序列,每个生产值根据"编译"列命名.所以我根据"编译"分组.
plotter.r在同一文件夹中可用的文件中查看我的代码摘录(参见上文).
# "dt" is the dataframe derived from the csv file.
# "thinned" is some vector of x-values that tells where to draw the special symbols.
p = ggplot(dt, aes(Date, Value, colour= Compilation, group = Compilation, size = plotParameter), guide=FALSE)
p = p + geom_point(data=dt[thinned,],aes(as.Date(Date), Value, colour= Compilation, shape = Compilation), size = 5)
p = p + scale_shape_manual(values = seq(0,20))
p = p + geom_line(guide = FALSE)
p = p + scale_colour_manual(values=cbPalette) #cbPalette is already defined
p = p + scale_size(range=c(0.5, 2), guide=FALSE)
p = p + scale_y_continuous(labels = comma)
p = p + ylab("Barrels per day") + xlab("")
p = p + theme(legend.text = element_text(size = 8, hjust = 5, vjust= -5))
plot(p)
Run Code Online (Sandbox Code Playgroud)
这是令人讨厌的事情:传奇按字母顺序重新编排我的编辑!

我故意设计了我的csv文件,以便每个编译以特定的逻辑顺序显示(首先是最重要的系列,然后是按照某些性能参数的顺序).所以传说中的正确顺序就是根据unique(dt$Compilation).
到目前为止,我的步骤是将列Order引入csv文件并进行实验(不成功),并以各种方式更改我的代码.没有成功.
当然,我已经用Google搜索并检查了Stackoverflow上的大多数可用线程.我遇到了因子分解和重新排序,但除了它们在数据集中出现的顺序之外,我的编译没有"逻辑"顺序.*叹*
任何人都可以指出我在哪里插入什么?
(加分点:如何摆脱符号图例中的水平线?)
适用breaks于两种尺度(scale_color_manual和scale_shape_manual).如果我们只做一个,它们就不匹配了,ggplot会把它们分成两个传说,而不是合并它们
一个这样的例子是:
> library(ggplot2)
> ggplot(mtcars, aes(wt, mpg, shape=factor(cyl))) + geom_point() + theme_bw()
> library(ggplot2)
> bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot()
> bp
Run Code Online (Sandbox Code Playgroud)

bp + scale_fill_discrete(breaks=c("trt1","ctrl","trt2"))
Run Code Online (Sandbox Code Playgroud)

扭转
bp + scale_fill_discrete(breaks = rev(levels(PlantGrowth$group)))
Run Code Online (Sandbox Code Playgroud)
也试试
bp + scale_fill_discrete(breaks = unique(levels(PlantGrowth$group)))
Run Code Online (Sandbox Code Playgroud)