[问题] ggplot2 有关scale_fill_或Legends

楼主: BUQ (固执又暴燥)   2017-06-07 15:37:04
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:新手(没写过程式,R 是我的第一次)
[问题叙述]:
请简略描述你所要做的事情,或是这个程式的目的
[程式范例]:
我想改 图的Legends的文字内容 用google找到这教学
http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/
其中的一段 http://ideone.com/g0dEeN
http://i.imgur.com/tWPaACT.jpg 我想改标示上的文字也就是legend.text
http://i.imgur.com/jyAuJmW.jpg
Q1 为何范例 有时用scale_fill_manual 有时用scale_fill_discrete差别在哪?
Q2 我的程式码 http://ideone.com/JB8Vjw 我需要画的是 geom_density
有很多行被注解是因为在网络上找了很多解法 试都没有用
没注解的 就是我现阶段妥协的画法
http://i.imgur.com/J3NWTRi.jpg
[环境叙述]:
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
[关键字]:
Legends ggplot2
作者: locka (locka)   2017-06-07 16:03:00
1. 两者差别在于discrete是自动为离散变量分配颜色,manual是手动指定颜色2. 因为你的写法是各自画三个geom_density,所以scale_fill_那些没办法用,正确做法应该是把那三个字段的资料合成同一个字段(整理成long table的形式),如此只需要写一个geom_density就可搞定。
作者: andrew43 (讨厌有好心推文后删文者)   2017-06-07 16:34:00
同locka,ggplot会建议只写一次 +geom_density()因为做了三次geom_density使之后aes不再适用
楼主: BUQ (固执又暴燥)   2017-06-07 20:36:00
谢谢 各位大大 自学果然会走到奇怪的区域我还一直以为 当初这样写很棒....XD蠢蠢的
作者: celestialgod (天)   2017-06-07 20:37:00
跟自学无关,是你还不清楚ggplot2的逻辑慢慢清楚ggplot2逻辑,就不会有这个疑问了传统的画图 逻辑跟ggplot2逻辑是不相容的 要转换一
楼主: BUQ (固执又暴燥)   2017-06-07 22:06:00
ggplot2的逻辑 有没有叙述比较好的网站可以参考
作者: celestialgod (天)   2017-06-07 22:09:00
没有XDD 多画几次 多看几次就熟了
作者: yenzichun (yenzichun)   2017-06-07 23:08:00
其实我觉得ggplot2的设计哲学就是headley大神所谓的tidy data,原po可以参考看看,之前在网络上有看过
作者: celestialgod (天)   2017-06-07 23:37:00
可以找找看ggplot2 book XD
作者: andrew43 (讨厌有好心推文后删文者)   2017-06-08 00:49:00
传统画法就是一个指令一个动作,但ggplot是把资料和动作在不同步骤一次处理…我也是多用就会了。

Links booklink

Contact Us: admin [ a t ] ucptt.com