将标签添加到计算的stat_smooth行ggplot geom_dl

时间:2017-07-21 11:27:56

标签: r ggplot2 direct-labels

HELP!

我一直在尝试直接为我的线性模型散点图添加标签,但有些困难。我读过这些文章(How to show directlabels after geom_smooth and not after geom_line?) 我认为我需要在ggplot中使用geom_dl函数。

然而,目前我只能让标签落在最后的点上,而不是线本身。我还设法在图表上绘制了名称,但是我再次无法将它与线条对齐。

任何想法都将不胜感激!

由于

这是我的代码:

p<-ggplot(Tabresults,aes(x=value,y=Mean),shape=variable)+stat_smooth(aes(colour=variable),size=1,method = "lm" ,span =0.3, se=F)+
  TD_Scatter+
  scale_color_manual(values=c("Cost Efficency"=col2,Simplicity=col1,"Reglatory Ease"=col3, Responsibility=col4,Approval=col5))
p+  geom_dl(aes(label=variable), method = list(box.color = NA, "angled.boxes")) 

我的虚拟数据集:

Tabresults<- structure(list(Mean = c(66.6666666666667, 16.6666666666667, 33.3333333333333, 
NA, 66.6666666666667, NA, 66.6666666666667, NA, NA, NA, 83.3333333333333, 
NA, NA, NA, 50, NA, NA, NA, NA, 33.3333333333333, NA, 50, 33.3333333333333, 
NA, NA, NA, 33.3333333333333, NA, NA, NA, 33.3333333333333, NA, 
33.3333333333333, NA, NA, NA, NA, NA, 83.3333333333333, NA, NA, 
NA, 33.3333333333333, 66.6666666666667, NA, 50, 33.3333333333333, 
NA, 50, 83.3333333333333, 66.6666666666667, 16.6666666666667, 
33.3333333333333, NA, 66.6666666666667, NA, 66.6666666666667, 
NA, NA, NA, 83.3333333333333, NA, NA, NA, 50, NA, NA, NA, NA, 
33.3333333333333, NA, 50, 33.3333333333333, NA, NA, NA, 33.3333333333333, 
NA, NA, NA, 33.3333333333333, NA, 33.3333333333333, NA, NA, NA, 
NA, NA, 83.3333333333333, NA, NA, NA, 33.3333333333333, 66.6666666666667, 
NA, 50, 33.3333333333333, NA, 50, 83.3333333333333, 66.6666666666667, 
16.6666666666667, 33.3333333333333, NA, 66.6666666666667, NA, 
66.6666666666667, NA, NA, NA, 83.3333333333333, NA, NA, NA, 50, 
NA, NA, NA, NA, 33.3333333333333, NA, 50, 33.3333333333333, NA, 
NA, NA, 33.3333333333333, NA, NA, NA, 33.3333333333333, NA, 33.3333333333333, 
NA, NA, NA, NA, NA, 83.3333333333333, NA, NA, NA, 33.3333333333333, 
66.6666666666667, NA, 50, 33.3333333333333, NA, 50, 83.3333333333333, 
66.6666666666667, 16.6666666666667, 33.3333333333333, NA, 66.6666666666667, 
NA, 66.6666666666667, NA, NA, NA, 83.3333333333333, NA, NA, NA, 
50, NA, NA, NA, NA, 33.3333333333333, NA, 50, 33.3333333333333, 
NA, NA, NA, 33.3333333333333, NA, NA, NA, 33.3333333333333, NA, 
33.3333333333333, NA, NA, NA, NA, NA, 83.3333333333333, NA, NA, 
NA, 33.3333333333333, 66.6666666666667, NA, 50, 33.3333333333333, 
NA, 50, 83.3333333333333, 66.6666666666667, 16.6666666666667, 
33.3333333333333, NA, 66.6666666666667, NA, 66.6666666666667, 
NA, NA, NA, 83.3333333333333, NA, NA, NA, 50, NA, NA, NA, NA, 
33.3333333333333, NA, 50, 33.3333333333333, NA, NA, NA, 33.3333333333333, 
NA, NA, NA, 33.3333333333333, NA, 33.3333333333333, NA, NA, NA, 
NA, NA, 83.3333333333333, NA, NA, NA, 33.3333333333333, 66.6666666666667, 
NA, 50, 33.3333333333333, NA, 50, 83.3333333333333), Brands = c("A", 
"A", "D", "A", "C", "B", "A", "C", "B", "D", "C", "A", "D", "A", 
"B", "A", "C", "B", "D", "C", "D", "B", "C", "A", "C", "A", "B", 
"B", "D", "C", "C", "B", "C", "C", "B", "C", "D", "B", "A", "B", 
"B", "B", "B", "A", "C", "A", "C", "A", "A", "A", "A", "A", "D", 
"A", "C", "B", "A", "C", "B", "D", "C", "A", "D", "A", "B", "A", 
"C", "B", "D", "C", "D", "B", "C", "A", "C", "A", "B", "B", "D", 
"C", "C", "B", "C", "C", "B", "C", "D", "B", "A", "B", "B", "B", 
"B", "A", "C", "A", "C", "A", "A", "A", "A", "A", "D", "A", "C", 
"B", "A", "C", "B", "D", "C", "A", "D", "A", "B", "A", "C", "B", 
"D", "C", "D", "B", "C", "A", "C", "A", "B", "B", "D", "C", "C", 
"B", "C", "C", "B", "C", "D", "B", "A", "B", "B", "B", "B", "A", 
"C", "A", "C", "A", "A", "A", "A", "A", "D", "A", "C", "B", "A", 
"C", "B", "D", "C", "A", "D", "A", "B", "A", "C", "B", "D", "C", 
"D", "B", "C", "A", "C", "A", "B", "B", "D", "C", "C", "B", "C", 
"C", "B", "C", "D", "B", "A", "B", "B", "B", "B", "A", "C", "A", 
"C", "A", "A", "A", "A", "A", "D", "A", "C", "B", "A", "C", "B", 
"D", "C", "A", "D", "A", "B", "A", "C", "B", "D", "C", "D", "B", 
"C", "A", "C", "A", "B", "B", "D", "C", "C", "B", "C", "C", "B", 
"C", "D", "B", "A", "B", "B", "B", "B", "A", "C", "A", "C", "A", 
"A", "A"), Country = c("UK", "Italy", "Canada", "UK", "France", 
"USA", "USA", "Canada", "France", "France", "Germany", "USA", 
"USA", "Germany", "UK", "Canada", "USA", "UK", "Italy", "Spain", 
"UK", "Canada", "France", "Germany", "UK", "Canada", "Germany", 
"France", "Spain", "Canada", "National", "Spain", "USA", "Italy", 
"USA", "Spain", "USA", "Canada", "National", "Spain", "Italy", 
"Germany", "USA", "Italy", "USA", "Spain", "UK", "France", "USA", 
"France", "UK", "Italy", "Canada", "UK", "France", "USA", "USA", 
"Canada", "France", "France", "Germany", "USA", "USA", "Germany", 
"UK", "Canada", "USA", "UK", "Italy", "Spain", "UK", "Canada", 
"France", "Germany", "UK", "Canada", "Germany", "France", "Spain", 
"Canada", "National", "Spain", "USA", "Italy", "USA", "Spain", 
"USA", "Canada", "National", "Spain", "Italy", "Germany", "USA", 
"Italy", "USA", "Spain", "UK", "France", "USA", "France", "UK", 
"Italy", "Canada", "UK", "France", "USA", "USA", "Canada", "France", 
"France", "Germany", "USA", "USA", "Germany", "UK", "Canada", 
"USA", "UK", "Italy", "Spain", "UK", "Canada", "France", "Germany", 
"UK", "Canada", "Germany", "France", "Spain", "Canada", "National", 
"Spain", "USA", "Italy", "USA", "Spain", "USA", "Canada", "National", 
"Spain", "Italy", "Germany", "USA", "Italy", "USA", "Spain", 
"UK", "France", "USA", "France", "UK", "Italy", "Canada", "UK", 
"France", "USA", "USA", "Canada", "France", "France", "Germany", 
"USA", "USA", "Germany", "UK", "Canada", "USA", "UK", "Italy", 
"Spain", "UK", "Canada", "France", "Germany", "UK", "Canada", 
"Germany", "France", "Spain", "Canada", "National", "Spain", 
"USA", "Italy", "USA", "Spain", "USA", "Canada", "National", 
"Spain", "Italy", "Germany", "USA", "Italy", "USA", "Spain", 
"UK", "France", "USA", "France", "UK", "Italy", "Canada", "UK", 
"France", "USA", "USA", "Canada", "France", "France", "Germany", 
"USA", "USA", "Germany", "UK", "Canada", "USA", "UK", "Italy", 
"Spain", "UK", "Canada", "France", "Germany", "UK", "Canada", 
"Germany", "France", "Spain", "Canada", "National", "Spain", 
"USA", "Italy", "USA", "Spain", "USA", "Canada", "National", 
"Spain", "Italy", "Germany", "USA", "Italy", "USA", "Spain", 
"UK", "France", "USA", "France"), ResponseID = c("R_00WRlb700n1GjXv", 
"R_07gbXR4Ha6OJB09", "R_0Au3bpA2SIJkoJv", "R_0DMu9qBNcmH06RT", 
"R_0H9Ij1iJbxxauhv", "R_0HtzJMAlUmFd7eJ", "R_0kZVPF5OzpKx1JP", 
"R_0l9w43DQvy3disZ", "R_1AqjSR9vOU1ecMB", "R_20nzAWfOPh7nRml", 
"R_2iuk2vfsLzdbdLD", "R_2rzLvsPBavktV0V", "R_3mk8vHXoLibFJFb", 
"R_3WAKxw6owkv5dtj", "R_3XjQKXAe1IVn6bX", "R_43flXUcbx5ZNwb3", 
"R_4YZTJthDHPHz6Fn", "R_5ilw7k35mqiF43P", "R_5pOe7d5B7dh2y1L", 
"R_5pR3aBjSgjNcgND", "R_6G8L4B63fGPld3v", "R_6gvwrXO1HJ9NGlL", 
"R_6JOpk29oUfdYZY9", "R_6mX2XdSTblLZzyB", "R_6P8nBxzGBhTP9D7", 
"R_73rsOrN9LV2A0ip", "R_79eIz74uWskf76Z", "R_7PvUht53GEWgmpf", 
"R_7X37d6jGnnqUWJ7", "R_8Ag8VoBJNjTwxhz", "R_8jkjYiRh3PUj3rT", 
"R_8oanUwlXQzRJmtL", "R_9nb3YiSBKl2UfHL", "R_9TDvGlh6Pr9B8YB", 
"R_b1kxY4eRtLTUHXf", "R_bJwTh2AXEDsH1qZ", "R_cGAGTr9k3pRO4h7", 
"R_cOLtGnG0L4dyJVj", "R_cu9j4828HAdCVAp", "R_d0TtYBrHAEW6BW5", 
"R_d4J5MjkjxjJTagl", "R_dpxrFpx13GXqrGt", "R_e4H0mr5bZ6Ek3f7", 
"R_egSsGaeyZskOkwl", "R_en9qnWap5NwCnnT", "R_ePpA9pU2ddLKnJP", 
"R_erLj5m7VyGkLSC1", "R_eUSfJoA9fyciCbz", "R_eyXQvu35fK8dzLf", 
"R_ezgC8GU1CBwlzOR", "R_00WRlb700n1GjXv", "R_07gbXR4Ha6OJB09", 
"R_0Au3bpA2SIJkoJv", "R_0DMu9qBNcmH06RT", "R_0H9Ij1iJbxxauhv", 
"R_0HtzJMAlUmFd7eJ", "R_0kZVPF5OzpKx1JP", "R_0l9w43DQvy3disZ", 
"R_1AqjSR9vOU1ecMB", "R_20nzAWfOPh7nRml", "R_2iuk2vfsLzdbdLD", 
"R_2rzLvsPBavktV0V", "R_3mk8vHXoLibFJFb", "R_3WAKxw6owkv5dtj", 
"R_3XjQKXAe1IVn6bX", "R_43flXUcbx5ZNwb3", "R_4YZTJthDHPHz6Fn", 
"R_5ilw7k35mqiF43P", "R_5pOe7d5B7dh2y1L", "R_5pR3aBjSgjNcgND", 
"R_6G8L4B63fGPld3v", "R_6gvwrXO1HJ9NGlL", "R_6JOpk29oUfdYZY9", 
"R_6mX2XdSTblLZzyB", "R_6P8nBxzGBhTP9D7", "R_73rsOrN9LV2A0ip", 
"R_79eIz74uWskf76Z", "R_7PvUht53GEWgmpf", "R_7X37d6jGnnqUWJ7", 
"R_8Ag8VoBJNjTwxhz", "R_8jkjYiRh3PUj3rT", "R_8oanUwlXQzRJmtL", 
"R_9nb3YiSBKl2UfHL", "R_9TDvGlh6Pr9B8YB", "R_b1kxY4eRtLTUHXf", 
"R_bJwTh2AXEDsH1qZ", "R_cGAGTr9k3pRO4h7", "R_cOLtGnG0L4dyJVj", 
"R_cu9j4828HAdCVAp", "R_d0TtYBrHAEW6BW5", "R_d4J5MjkjxjJTagl", 
"R_dpxrFpx13GXqrGt", "R_e4H0mr5bZ6Ek3f7", "R_egSsGaeyZskOkwl", 
"R_en9qnWap5NwCnnT", "R_ePpA9pU2ddLKnJP", "R_erLj5m7VyGkLSC1", 
"R_eUSfJoA9fyciCbz", "R_eyXQvu35fK8dzLf", "R_ezgC8GU1CBwlzOR", 
"R_00WRlb700n1GjXv", "R_07gbXR4Ha6OJB09", "R_0Au3bpA2SIJkoJv", 
"R_0DMu9qBNcmH06RT", "R_0H9Ij1iJbxxauhv", "R_0HtzJMAlUmFd7eJ", 
"R_0kZVPF5OzpKx1JP", "R_0l9w43DQvy3disZ", "R_1AqjSR9vOU1ecMB", 
"R_20nzAWfOPh7nRml", "R_2iuk2vfsLzdbdLD", "R_2rzLvsPBavktV0V", 
"R_3mk8vHXoLibFJFb", "R_3WAKxw6owkv5dtj", "R_3XjQKXAe1IVn6bX", 
"R_43flXUcbx5ZNwb3", "R_4YZTJthDHPHz6Fn", "R_5ilw7k35mqiF43P", 
"R_5pOe7d5B7dh2y1L", "R_5pR3aBjSgjNcgND", "R_6G8L4B63fGPld3v", 
"R_6gvwrXO1HJ9NGlL", "R_6JOpk29oUfdYZY9", "R_6mX2XdSTblLZzyB", 
"R_6P8nBxzGBhTP9D7", "R_73rsOrN9LV2A0ip", "R_79eIz74uWskf76Z", 
"R_7PvUht53GEWgmpf", "R_7X37d6jGnnqUWJ7", "R_8Ag8VoBJNjTwxhz", 
"R_8jkjYiRh3PUj3rT", "R_8oanUwlXQzRJmtL", "R_9nb3YiSBKl2UfHL", 
"R_9TDvGlh6Pr9B8YB", "R_b1kxY4eRtLTUHXf", "R_bJwTh2AXEDsH1qZ", 
"R_cGAGTr9k3pRO4h7", "R_cOLtGnG0L4dyJVj", "R_cu9j4828HAdCVAp", 
"R_d0TtYBrHAEW6BW5", "R_d4J5MjkjxjJTagl", "R_dpxrFpx13GXqrGt", 
"R_e4H0mr5bZ6Ek3f7", "R_egSsGaeyZskOkwl", "R_en9qnWap5NwCnnT", 
"R_ePpA9pU2ddLKnJP", "R_erLj5m7VyGkLSC1", "R_eUSfJoA9fyciCbz", 
"R_eyXQvu35fK8dzLf", "R_ezgC8GU1CBwlzOR", "R_00WRlb700n1GjXv", 
"R_07gbXR4Ha6OJB09", "R_0Au3bpA2SIJkoJv", "R_0DMu9qBNcmH06RT", 
"R_0H9Ij1iJbxxauhv", "R_0HtzJMAlUmFd7eJ", "R_0kZVPF5OzpKx1JP", 
"R_0l9w43DQvy3disZ", "R_1AqjSR9vOU1ecMB", "R_20nzAWfOPh7nRml", 
"R_2iuk2vfsLzdbdLD", "R_2rzLvsPBavktV0V", "R_3mk8vHXoLibFJFb", 
"R_3WAKxw6owkv5dtj", "R_3XjQKXAe1IVn6bX", "R_43flXUcbx5ZNwb3", 
"R_4YZTJthDHPHz6Fn", "R_5ilw7k35mqiF43P", "R_5pOe7d5B7dh2y1L", 
"R_5pR3aBjSgjNcgND", "R_6G8L4B63fGPld3v", "R_6gvwrXO1HJ9NGlL", 
"R_6JOpk29oUfdYZY9", "R_6mX2XdSTblLZzyB", "R_6P8nBxzGBhTP9D7", 
"R_73rsOrN9LV2A0ip", "R_79eIz74uWskf76Z", "R_7PvUht53GEWgmpf", 
"R_7X37d6jGnnqUWJ7", "R_8Ag8VoBJNjTwxhz", "R_8jkjYiRh3PUj3rT", 
"R_8oanUwlXQzRJmtL", "R_9nb3YiSBKl2UfHL", "R_9TDvGlh6Pr9B8YB", 
"R_b1kxY4eRtLTUHXf", "R_bJwTh2AXEDsH1qZ", "R_cGAGTr9k3pRO4h7", 
"R_cOLtGnG0L4dyJVj", "R_cu9j4828HAdCVAp", "R_d0TtYBrHAEW6BW5", 
"R_d4J5MjkjxjJTagl", "R_dpxrFpx13GXqrGt", "R_e4H0mr5bZ6Ek3f7", 
"R_egSsGaeyZskOkwl", "R_en9qnWap5NwCnnT", "R_ePpA9pU2ddLKnJP", 
"R_erLj5m7VyGkLSC1", "R_eUSfJoA9fyciCbz", "R_eyXQvu35fK8dzLf", 
"R_ezgC8GU1CBwlzOR", "R_00WRlb700n1GjXv", "R_07gbXR4Ha6OJB09", 
"R_0Au3bpA2SIJkoJv", "R_0DMu9qBNcmH06RT", "R_0H9Ij1iJbxxauhv", 
"R_0HtzJMAlUmFd7eJ", "R_0kZVPF5OzpKx1JP", "R_0l9w43DQvy3disZ", 
"R_1AqjSR9vOU1ecMB", "R_20nzAWfOPh7nRml", "R_2iuk2vfsLzdbdLD", 
"R_2rzLvsPBavktV0V", "R_3mk8vHXoLibFJFb", "R_3WAKxw6owkv5dtj", 
"R_3XjQKXAe1IVn6bX", "R_43flXUcbx5ZNwb3", "R_4YZTJthDHPHz6Fn", 
"R_5ilw7k35mqiF43P", "R_5pOe7d5B7dh2y1L", "R_5pR3aBjSgjNcgND", 
"R_6G8L4B63fGPld3v", "R_6gvwrXO1HJ9NGlL", "R_6JOpk29oUfdYZY9", 
"R_6mX2XdSTblLZzyB", "R_6P8nBxzGBhTP9D7", "R_73rsOrN9LV2A0ip", 
"R_79eIz74uWskf76Z", "R_7PvUht53GEWgmpf", "R_7X37d6jGnnqUWJ7", 
"R_8Ag8VoBJNjTwxhz", "R_8jkjYiRh3PUj3rT", "R_8oanUwlXQzRJmtL", 
"R_9nb3YiSBKl2UfHL", "R_9TDvGlh6Pr9B8YB", "R_b1kxY4eRtLTUHXf", 
"R_bJwTh2AXEDsH1qZ", "R_cGAGTr9k3pRO4h7", "R_cOLtGnG0L4dyJVj", 
"R_cu9j4828HAdCVAp", "R_d0TtYBrHAEW6BW5", "R_d4J5MjkjxjJTagl", 
"R_dpxrFpx13GXqrGt", "R_e4H0mr5bZ6Ek3f7", "R_egSsGaeyZskOkwl", 
"R_en9qnWap5NwCnnT", "R_ePpA9pU2ddLKnJP", "R_erLj5m7VyGkLSC1", 
"R_eUSfJoA9fyciCbz", "R_eyXQvu35fK8dzLf", "R_ezgC8GU1CBwlzOR"
), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L), .Label = c("Cost Efficency", "Simplicity", "Reglatory Ease", 
"Responsibility", "Approval"), class = "factor"), value = c(33.33, 
16.66, 0, NA, 83.33, NA, 66.66, NA, NA, NA, 83.33, NA, NA, NA, 
83.33, NA, NA, NA, NA, 33.33, NA, 0, 66.66, NA, NA, NA, 33.33, 
NA, NA, NA, 16.66, NA, 0, NA, NA, NA, NA, NA, 50, NA, NA, NA, 
16.66, 83.33, NA, 33.33, 50, NA, 10, 16.66, 100, 33.3, 66.6, 
NA, 0, NA, 0, NA, NA, NA, 33.3, NA, NA, NA, 16.6, NA, NA, NA, 
NA, 16.6, NA, 50, 50, NA, NA, NA, 0, NA, NA, NA, 83.3, NA, 16.6, 
NA, NA, NA, NA, NA, 0, NA, NA, NA, 16.6, 0, NA, 83.3, 100, NA, 
100, 16.6, 83.3, 16.6, 50, NA, 100, NA, 33.3, NA, NA, NA, 100, 
NA, NA, NA, 66.6, NA, NA, NA, NA, 66.6, NA, 33.3, 33.3, NA, NA, 
NA, 0, NA, NA, NA, 16.6, NA, 16.6, NA, NA, NA, NA, NA, 0, NA, 
NA, NA, 50, 100, NA, 83.3, 16.6, NA, 50, 83.3, 83.3, 100, 66.6, 
NA, 100, NA, 33.3, NA, NA, NA, 33.3, NA, NA, NA, 66.6, NA, NA, 
NA, NA, 100, NA, 66.6, 100, NA, NA, NA, 0, NA, NA, NA, 33.3, 
NA, 33.3, NA, NA, NA, NA, NA, 100, NA, NA, NA, 50, 50, NA, 33.3, 
0, NA, 16.6, 50, 33.33, 0, 50, NA, 0, NA, 0, NA, NA, NA, 63.33, 
NA, NA, NA, 16.6, NA, NA, NA, NA, 100, NA, 83.33, 33.33, NA, 
NA, NA, 16.6, NA, NA, NA, 50, NA, 0, NA, NA, NA, NA, NA, 83.33, 
NA, NA, NA, 100, 50, NA, 50, 83.33, NA, 100, 33.33)), row.names = c(NA, 
-250L), .Names = c("Mean", "Brands", "Country", "ResponseID", 
"variable", "value"), class = "data.frame")

1 个答案:

答案 0 :(得分:0)

致力于解决问题......就目前而言,这已经到了......

使用以下代码

p = ggplot(Tabresults,aes(x=value,y=Mean),shape=variable)+stat_smooth(aes(colour=variable),size=1,method = "lm" ,span =0.3, se=F)
p +  geom_dl(aes(label = variable), method = list("angled.boxes"))

其中geom_dl(对我而言)不在ggplot2中,而是在直接标签中。定位方法仍然不好......我现在正在寻找

http://directlabels.r-forge.r-project.org/docs/

他们描述了各种定位方法。

编辑:我开始认为他们说明为什么这些标签现在如此混乱......是因为该方法试图不相互碰撞标签。

Edit2:绕过包...只使用注释

# Get mean positions of all the variables..
test = Tabresults[,.(mean_value = mean(value,na.rm = TRUE),mean_mean = mean(Mean, na.rm = TRUE)),by = variable]

# Getting the angle was a bit more difficult.
# I could not find the values from the stat_smooth object in the ggplot_object.. so I had to re-do the calculations
list_variable = unique(Tabresults$variable)
list_angle = c()

for(i in 1:length(list_variable)){

    i_variable = list_variable[i]
    list_angle[i] = coef(lm(Mean ~ value, data = Tabresults[variable == i_variable][!is.na(Mean)]))[2]

}
# Combine all the obtained results into one data.table
test_test = data.table(variable = list_variable, angle = list_angle)

# Add these angles to the original mean-location per variable
final_markup = merge(test,test_test,by = "variable")
# Correct some angles
final_markup[,angle := angle*100]
final_markup[angle <0, angle := 360 - abs(angle)]
# And finally plot it
p + annotate("text", x = final_markup$mean_value, y = final_markup$mean_mean,angle = final_markup$angle*2,label = final_markup$variable)

这会带来以下图像。还不理想,但是,嘿,这是一些东西。

enter image description here