R中第三行数据值的绘图点
我有一个数据框Savings,有3列,如下所示:R中第三行数据值的绘图点,r,ggplot2,R,Ggplot2,我有一个数据框Savings,有3列,如下所示: Templates FTEs PageTotal 1 54.87922 532900.4 383 34.35612 15165274.1 765 31.09695 16608751.6 1147 29.32025 17553846.2 1529 28.23367 1801976
Templates FTEs PageTotal
1 54.87922 532900.4
383 34.35612 15165274.1
765 31.09695 16608751.6
1147 29.32025 17553846.2
1529 28.23367 18019766.2
1911 27.52513 18346629.7
2293 27.06843 18528129.5
2675 26.75649 18660953.8
3057 26.53630 18732909.4
3439 26.37230 18793627.5
3821 26.24649 18824156.0
4203 26.14882 18880440.9
4585 26.07402 18903224.3
4967 26.01293 18917600.4
5349 25.95397 18941023.6
5731 25.90557 18958726.5
6113 25.86892 18967352.1
6495 25.84334 18976647.7
6877 25.82275 18981660.5
7259 25.81053 18984535.7
我使用以下命令绘制前两列:
ggplot(data=Savings, aes(x=Templates, y=FTEs, color=variable)) +
geom_line(aes(y=FTEs, col="FTEs"), size=1, color="dodgerblue3") +
labs(x="Templates", y="FTEs") +
scale_x_continuous(labels=scales::comma, breaks(0,7700,by=500)) +
scale_y_continuous(breaks=seq(0,60,by=2))
我想在同一行上绘制第三列“PageTotal”中的点的子集,在图上显示带有这些点的“PageTotal”值的符号。本质上,我们希望能够看到模板数量的相应页面总数
根据模板编号,显示的PageTotal子集只能是5个等距值
我不确定使用ggplot2实现这一点的最佳方法
编辑:
所以我已经做到了这一点:
ggplot(data=Savings, aes(x=Templates, y=FTEs, color=variable)) +
geom_line(aes(y=FTEs, col="FTEs"), size=1, color="dodgerblue3") +
geom_point(data=Savings[seq(1,20,by=5),], aes(x=Templats, y=FTEs), color="red") +
geom_text(data=Savings[seq(1,20,by=5),], aes(y=FTEs, label=format(round(PageTotal, 0), big.mark=",")), hjust=0, vjust=0, color="black") +
labs(x="Templates", y="FTEs") +
scale_x_continuous(labels=scales::comma, breaks(0,7700,by=500)) +
scale_y_continuous(breaks=seq(0,60,by=2))
但是,现在这些标签靠得太近,相互重叠。是否可以旋转标签,或交替放置标签,使其不重叠?使用要打印的数据创建一个新的数据框,然后更改图层中的数据参数。在这里,我将
模板列切割成5个大小均匀的组,并保留每组的第一行
library(tidyverse)
Savings <- read.table(text = "
Templates FTEs PageTotal
1 54.87922 532900.4
383 34.35612 15165274.1
765 31.09695 16608751.6
1147 29.32025 17553846.2
1529 28.23367 18019766.2
1911 27.52513 18346629.7
2293 27.06843 18528129.5
2675 26.75649 18660953.8
3057 26.53630 18732909.4
3439 26.37230 18793627.5
3821 26.24649 18824156.0
4203 26.14882 18880440.9
4585 26.07402 18903224.3
4967 26.01293 18917600.4
5349 25.95397 18941023.6
5731 25.90557 18958726.5
6113 25.86892 18967352.1
6495 25.84334 18976647.7
6877 25.82275 18981660.5
7259 25.81053 18984535.7", header = TRUE)
page_summary <- Savings %>%
mutate(Temp_group = cut(Templates, 5)) %>% # cut into groups
group_by(Temp_group) %>%
filter(row_number() == 1) # keep first from each group
ggplot(Savings, aes(x = Templates, y = FTEs, label = PageTotal)) +
geom_line(color="dodgerblue3") +
geom_point(data = page_summary, size = 3) +
geom_label(data = page_summary, hjust = 0, nudge_x = 120, nudge_y = 1) +
labs(x="Templates", y="FTEs") +
scale_x_continuous(labels = scales::comma, breaks = seq(0, 7700, by = 500)) +
scale_y_continuous(breaks = seq(0, 60, by = 2))
库(tidyverse)
储蓄%#分组
分组依据(临时分组)%>%
过滤器(行数()==1)#保留每组中的第一个
ggplot(节省,aes(x=模板,y=FTE,label=页面总数))+
几何图形线(color=“dodgerblue3”)+
几何点(数据=页面摘要,大小=3)+
几何图形标签(数据=页面摘要,hjust=0,微移x=120,微移y=1)+
实验室(x=“模板”,y=“全职员工”)+
比例x连续(标签=比例::逗号,分隔符=顺序(07700,by=500))+
刻度连续(断开=顺序(0,60,按=2))
数据框中没有值
或变量
列。你遗漏了一些处理代码我编辑了它以引用该专栏。在实际图形中,我绘制了几条不同的线。在geom_lines调用中,它识别aes(y=FTEs,…替换了“values”引用。我不知道是否应该这样做,但对我来说是这样的。color=变量的工作方式相同。这正是我想要的。谢谢。有时候ggplot界面感觉有点神奇。