R 显示相对于范围的当前值和历史值的图表
我想使用ggplot在R中重新创建以下图表。我的数据是根据一个类似的表格,其中每个代码(a、B、C等)的数据。我有一个当前值,一个12米前的值,以及该期间的相应范围(最大值、最小值) 我的图表需要以红色显示当前值,以蓝色显示12米前的值,然后用一条线显示最大和最小范围 我可以在Excel中使用错误条来完成这项艰巨的工作,但我想在R中重现它。 关于如何使用ggplot实现这一点,有什么想法吗?谢谢R 显示相对于范围的当前值和历史值的图表,r,ggplot2,R,Ggplot2,我想使用ggplot在R中重新创建以下图表。我的数据是根据一个类似的表格,其中每个代码(a、B、C等)的数据。我有一个当前值,一个12米前的值,以及该期间的相应范围(最大值、最小值) 我的图表需要以红色显示当前值,以蓝色显示12米前的值,然后用一条线显示最大和最小范围 我可以在Excel中使用错误条来完成这项艰巨的工作,但我想在R中重现它。 关于如何使用ggplot实现这一点,有什么想法吗?谢谢 以下是我的想法,但请注意:如果您发布数据集,请不要发布图像,而是发布dput(your.data.
以下是我的想法,但请注意:如果您发布数据集,请不要发布图像,而是发布dput(your.data.frame)的结果。。这样做的结果很容易复制粘贴到控制台中,以便复制您的数据集,而我手动重新创建了您的数据帧/ 关于您的数据现状和预期图,首先有几点:
- 用于表示12个月前和今天的红色和蓝色散列标记不是我头脑中知道的几何图形,因此我在这里使用
来显示它们(最简单的方法)。您可以选择另一个几何图形,希望以不同的方式显示它们geom_point
- 高和低的范围已经由这些列名指定。我将在
中使用这些值来实现所需的美学效果geom\u errorbar
geom_point
调用(一个用于“今天”和一个用于“12米以前”),但这将使创建图例变得比需要更困难,因此更好的选择是调整数据集以支持自动创建图例。为此,我们将使用tidyr
中的collect
功能,确保只“收集”了“今天”和“12个月前”中的信息(我的列名与此不同,您需要在数据框中以字母开头),但不要考虑“高”、“低”和字母(在我的数据框中称为“类别”)
其中,df
是原始数据帧:
df1 <- df %>% gather(time, value, -category, -high, -low)
其中“time”有“M12.ago”或“today”
对于绘图,将类别应用于x,将值应用于y,并分别为geom\u errorbar
指定ymax和ymin的高和低值:
ggplot(df1, aes(x=category, y=value)) +
geom_errorbar(aes(ymin=low, ymax=high), width=0.2) + ylim(0,100) +
geom_point(aes(color=time), size=2) +
scale_color_manual(values=list('M12.ago'='blue', 'today'='red')) +
theme_bw() + labs(color="") + theme(legend.position='bottom')
给你这个:
ggplot(df1, aes(x=category, y=value)) +
geom_errorbar(aes(ymin=low, ymax=high), width=0.2) + ylim(0,100) +
geom_point(aes(color=time), size=2) +
scale_color_manual(values=list('M12.ago'='blue', 'today'='red')) +
theme_bw() + labs(color="") + theme(legend.position='bottom')