【发布时间】:2018-09-20 16:03:36
【问题描述】:
我一直在尝试使用R 包ggplot2 绘制具有不同 点符号和 连接具有不同颜色的线的两组数据的图表,但是对于我的生活,我无法通过显示每条曲线的关联数据点符号来正确区分两条曲线。
我可以让图例显示不同的线条颜色。但我无法让图例为每组数据显示不同的数据点符号。
以下代码:
df <- data.frame( thrd_cnt=c(1,2,4,8,16),
runtime4=c(53,38,31,41,54),
runtime8=c(54,35,31,35,44))
library("ggplot2")
print(
ggplot(data = df, aes(df$thrd_cnt, y=df$runtime, color=)) +
geom_line(aes(y=df$runtime4, color = "4 cores")) +
geom_point(aes(y=df$runtime4, color = "4 cores"), fill = "white",
size = 3, shape = 21) +
geom_line(aes(y=df$runtime8, color = "8 cores")) +
geom_point(aes(y=df$runtime8, color = "8 cores"), fill = "white",
size = 3, shape = 23) +
xlab("Number of Threads") +
ylab(substitute(paste("Execution Time, ", italic(milisec)))) +
scale_x_continuous(breaks=c(1,2,4,8,16)) +
theme(legend.position = c(0.3, 0.8)) +
labs(color="# cores")
)
## save a pdf and a png
ggsave("runtime.pdf", width=5, height=3.5)
ggsave("runtime.png", width=5, height=3.5)
输出此图:
但是图例中的数据点符号是不可区分的。图例为两个图表显示了相同的符号(由两个数据点符号相互叠加)。
一种可能的解决方案是将线程数定义为factor,然后我可能能够正确获取图例上的数据点符号,但我仍然不知道该怎么做。
任何帮助将不胜感激。
【问题讨论】: