我知道我以稍微奇怪的方式使用点图,但是我已经生成了图形I想;其中显示了每个英超足球俱乐部在每个位置有多少球员,每个点显示一名球员。我有多个类别 - 显示球员是小队球员还是青少年球员,这些是分开绘制的,第二种是微调的,因此它们不会重叠。ggplot2 - 如何在点图不在相同坐标上着色点时如何将图例应用为手动渐变
我想添加另一层信息,它是根据每个玩家玩过多少分钟来渲染点。我在我的数据框中有这些数据。
它完美的颜色编码的点,除非数据是“分组”,在这种情况下,它使它灰色。
我读过产生良好的R第指导。我已经减少了数据,以显示问题,而不是巨大的,并删除了所有代码行,如操纵数据到这一点和图形标题等。
这是一个20人的样本,它产生16个很好的彩色点,以及2对灰色,无色点。
structure(list(team = structure(c(2L, 3L, 4L, 4L, 5L, 6L, 8L, 9L, 11L, 12L, 5L, 6L, 7L, 10L, 12L, 12L, 1L, 4L, 5L, 7L), .Label = c("AFC Bournemouth", "Arsenal", "Brighton & Hove Albion", "Chelsea", "Crystal Palace", "Everton", "Huddersfield Town", "Leicester City", "Liverpool", "Swansea City", "Tottenham Hotspur", "West Bromwich Albion"), class = "factor"),
role = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "U21", class = "factor"),
name = structure(c(10L, 2L, 1L, 15L, 13L, 19L, 4L, 7L, 20L,
8L, 17L, 9L, 18L, 11L, 3L, 6L, 14L, 5L, 12L, 16L), .Label = c("Boga",
"Brown", "Burke", "Chilwell", "Christensen", "Field", "Grujic",
"Harper", "Holgate", "Iwobi", "Junior Luz Sanches", "Loftus Cheek",
"Lumeka", "Mousset", "Musonda", "Palmer", "Riedwald", "Sabiri",
"Vlasic", "Walker-Peters"), class = "factor"), pos = structure(c(6L,
7L, 6L, 6L, 6L, 5L, 2L, 4L, 3L, 6L, 1L, 1L, 5L, 4L, 6L, 4L,
7L, 1L, 4L, 5L), .Label = c("2. CB", "3. LB", "3. RB", "4. CM",
"5. AM", "5. WM", "6. CF"), class = "factor"), mins = c(11,
24, 18, 1, 25, 10, 90, 6, 90, 20, 99, 180, 97, 127, 35, 156,
32, 162, 258, 124)), .Names = c("team", "role", "name", "pos", "mins"), row.names = 471:490, class = "data.frame")
这里是我使用的代码:
library(ggplot2)
ggplot()+
geom_dotplot(data=u21, aes(x=team, y=pos, fill=mins), binaxis='y', stackdir="center", stackratio = 1, dotsize = 0.1, binwidth=0.75, position=position_nudge(y=-0.1)) +
scale_fill_gradient(low="pink",high='red')
在我实际的代码我然后再次运行ggplot线,但调用不同的数据帧,用不同的颜色渐变,和不同微调,使点不重叠。
嗨,感谢您的帮助,它确实适用于这个示例,但是当我在完整的数据框上尝试它时(约460分),看起来非常混乱,因为由于抖动的随机性,增加比4更多的空间,因此视觉失去了'一目了然'的性质。颜色编码错误虽然是解决问题的好主意。谢谢@RyanRunge –
@ChrisBaker - 够公平的。我决定添加复杂的选项来帮助您的特定用例。请参阅上面的修改。 – www
@ChrisBaker - 如果回答您的问题,请记得点击此解决方案旁边的复选标记。它有助于社区知道它已经得到解决,并且帮助其他人在同一问题中找到更快的答案。 – www