【发布时间】:2019-03-04 04:44:39
【问题描述】:
我正在使用 ggplot2 绘制 .csv 文件中的点,该文件只是使用 x 值的列和使用 y 值的列。我对 ggplot 如何决定为什么制作传奇感到有些困惑,并且在网上没有找到任何好的例子。
我希望图例表明geom_point 是压力与应变,而我的geom_smooth 是最合适的线。
这是我的代码:
library(ggplot2)
imported = read.csv("data.csv")
Strain = imported$Strain
Stress = imported$Stress..N.m.2.
err = .0005
gg <-
ggplot(imported, aes(x=Strain, y=Stress)) +
geom_point(aes(group = "Points"), shape = 79, colour = "black", size = 2, stroke = 4) +
geom_smooth(method = "lm", se = FALSE, color = "orange") +
geom_errorbarh(xmin = Strain - err, xmax = Strain + err, show.legend = TRUE) +
theme_gray() + ggtitle("Stress vs Strain") +
theme(legend.position = "top")
gg
它正在产生以下情节: my plot
【问题讨论】:
-
我不清楚您要达到的目标。在
ggplot中,会自动添加图例以用于特定的美学(如colour、fill、linetype等)。group美学似乎在您的代码中没有任何用途。你能澄清你想要做什么吗?你想在传说中加入什么?最后:请通过包含示例数据使您的示例可重现。除了你之外,没有人可以访问imported。 -
geom_errorbarh中的show.legend选项确定误差条层是否应包含在图例中的任何相关几何图形周围。例如,如果您从geom_point代码中删除colour = "black",并添加aes(color = Strain > 1),我希望您会得到点颜色的图例,并且这些图例中可能包含错误栏。由于您不包含示例数据,因此难以确认。 -
PS 顺便说一句。您正在做的事情可能非常危险:您使用的是
data = imported,但随后引用了Strain和Stress,它们是全局变量。这不是ggplot的方式。data函数参数的全部意义在于指定data.frame,其中ggplot应查找包含您要绘制的数据的列。 -
我想要做的是获取只是 x 和 y 坐标的数据,并得到一个图例,基本上只是说我的 geom_point 是应力与应变,而我的 geom_smooth 是最适合的线。