缩放 X 轴误差并需要帮助在 ggplot R 中向 X 轴添加“%”符号
Scaling X axis error and need help adding "%" symbol to X axis in ggplot R
我正在尝试将 X 轴从 3 缩放到 5,幅度为 0.5,但每当我尝试使用 scale_x_continuous 或离散时,我都会收到此错误消息“'x' 的缩放已存在。添加另一个'x' 的比例尺,这将取代现有的比例尺”。而且X轴完全没有变化。
我做错了什么?我找到的所有示例都只是建议使用 scale_x_continuous/discrete 来更改缩放比例,找不到任何替代方法。
此外,如何将“%”符号添加到 X 轴的值中?非常感谢!
这是我的代码:
ggplot() +
ggtitle("Crime rate and unemployment rate relationship \nin regions with lower unemployment rate") +
geom_point(aes(x = Unemployment.rate, y= Crime_occurrences, colour = Crime),
size = 2, data = df) +
xlab("Unemployment Rate (%)") +
ylab("Crime Occurrences") +
new_scale_color()+
labs(linetype = "Crime") +
scale_x_continuous(breaks = seq(from = 3, to = 5, by = 0.5))
如果需要,这里是输出:
structure(list(Date = structure(c(17897, 17897, 17897, 17928,
17928, 17928, 17956, 17956, 17956, 17987, 17987, 17987, 18017,
18017, 18017, 18048, 18048, 18048, 18078, 18078, 18078, 18109,
18109, 18109, 18140, 18140, 18140, 18170, 18170, 18170, 18201,
18201, 18201, 18231, 18231, 18231, 18262, 18262, 18262, 18293,
18293, 18293, 18322, 18322, 18322, 18353, 18353, 18353, 18383,
18383, 18383, 18414, 18414, 18414, 18444, 18444, 18444, 18475,
18475, 18475, 18506, 18506, 18506, 18536, 18536, 18536), class = "Date"),
Crime = c("Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences"
), Crime_occurrences = c(46048L, 59095L, 60903L, 46421L,
55113L, 57402L, 53790L, 61596L, 66028L, 58546L, 59191L, 63211L,
60366L, 60219L, 65880L, 60129L, 57945L, 66560L, 60293L, 50947L,
61021L, 55633L, 50135L, 57478L, 48649L, 48699L, 55966L, 49221L,
50774L, 59692L, 42594L, 48351L, 56188L, 38697L, 44196L, 56252L,
40911L, 47788L, 58490L, 39094L, 46059L, 55306L, 47758L, 39437L,
55195L, 71823L, 26419L, 47693L, 76630L, 28944L, 54598L, 74699L,
32291L, 58689L, 66761L, 37074L, 66098L, 68462L, 37713L, 65852L,
56563L, 37036L, 60341L, 57994L, 38726L, 58046L), Unemployment.rate = c(3.21299304812096,
3.21299304812096, 3.21299304812096, 3.21407730295749, 3.21407730295749,
3.21407730295749, 3.07244008464232, 3.07244008464232, 3.07244008464232,
3.08493181969057, 3.08493181969057, 3.08493181969057, 3.10614218230136,
3.10614218230136, 3.10614218230136, 3.22312556301873, 3.22312556301873,
3.22312556301873, 3.12755904901825, 3.12755904901825, 3.12755904901825,
3.23579986150285, 3.23579986150285, 3.23579986150285, 3.26468227547793,
3.26468227547793, 3.26468227547793, 3.21917119228965, 3.21917119228965,
3.21917119228965, 3.39151937106994, 3.39151937106994, 3.39151937106994,
3.36709422886676, 3.36709422886676, 3.36709422886676, 3.50615666377231,
3.50615666377231, 3.50615666377231, 3.49109767843293, 3.49109767843293,
3.49109767843293, 3.4101096182824, 3.4101096182824, 3.4101096182824,
3.44083160566247, 3.44083160566247, 3.44083160566247, 3.45075851478447,
3.45075851478447, 3.45075851478447, 3.5319782798045, 3.5319782798045,
3.5319782798045, 3.63445450113824, 3.63445450113824, 3.63445450113824,
4.14712651558611, 4.14712651558611, 4.14712651558611, 4.25985044273646,
4.25985044273646, 4.25985044273646, 4.40411017203591, 4.40411017203591,
4.40411017203591)), row.names = c(NA, -66L), class = "data.frame")
谢谢!
试试这个:
library(ggplot2)
library(ggnewscale)
#Code
ggplot() +
ggtitle("Crime rate and unemployment rate relationship \nin regions with lower unemployment rate") +
geom_point(aes(x = Unemployment.rate, y= Crime_occurrences, colour = Crime),
size = 2, data = df) +
scale_x_continuous(breaks = seq(from = 3, to = 5, by = 0.5),
limits = c(3,5),
labels = function(x) paste0(x,'%'))+
xlab("Unemployment Rate (%)") +
ylab("Crime Occurrences") +
new_scale_color()+
labs(linetype = "Crime")
输出:
一个更花哨的选择(非常感谢并归功于 @teunbrand):
#Code2
ggplot() +
ggtitle("Crime rate and unemployment rate relationship \nin regions with lower unemployment rate") +
geom_point(aes(x = Unemployment.rate, y= Crime_occurrences, colour = Crime),
size = 2, data = df) +
scale_x_continuous(breaks = seq(from = 3, to = 5, by = 0.5),
limits = c(3,5),
labels = scales::percent_format(scale = 1, accuracy = 0.1))+
xlab("Unemployment Rate (%)") +
ylab("Crime Occurrences") +
new_scale_color()+
labs(linetype = "Crime")
输出:
我正在尝试将 X 轴从 3 缩放到 5,幅度为 0.5,但每当我尝试使用 scale_x_continuous 或离散时,我都会收到此错误消息“'x' 的缩放已存在。添加另一个'x' 的比例尺,这将取代现有的比例尺”。而且X轴完全没有变化。
我做错了什么?我找到的所有示例都只是建议使用 scale_x_continuous/discrete 来更改缩放比例,找不到任何替代方法。
此外,如何将“%”符号添加到 X 轴的值中?非常感谢!
这是我的代码:
ggplot() +
ggtitle("Crime rate and unemployment rate relationship \nin regions with lower unemployment rate") +
geom_point(aes(x = Unemployment.rate, y= Crime_occurrences, colour = Crime),
size = 2, data = df) +
xlab("Unemployment Rate (%)") +
ylab("Crime Occurrences") +
new_scale_color()+
labs(linetype = "Crime") +
scale_x_continuous(breaks = seq(from = 3, to = 5, by = 0.5))
如果需要,这里是输出:
structure(list(Date = structure(c(17897, 17897, 17897, 17928,
17928, 17928, 17956, 17956, 17956, 17987, 17987, 17987, 18017,
18017, 18017, 18048, 18048, 18048, 18078, 18078, 18078, 18109,
18109, 18109, 18140, 18140, 18140, 18170, 18170, 18170, 18201,
18201, 18201, 18231, 18231, 18231, 18262, 18262, 18262, 18293,
18293, 18293, 18322, 18322, 18322, 18353, 18353, 18353, 18383,
18383, 18383, 18414, 18414, 18414, 18444, 18444, 18444, 18475,
18475, 18475, 18506, 18506, 18506, 18536, 18536, 18536), class = "Date"),
Crime = c("Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences",
"Anti-social behaviour", "Theft", "Violence and sexual offences"
), Crime_occurrences = c(46048L, 59095L, 60903L, 46421L,
55113L, 57402L, 53790L, 61596L, 66028L, 58546L, 59191L, 63211L,
60366L, 60219L, 65880L, 60129L, 57945L, 66560L, 60293L, 50947L,
61021L, 55633L, 50135L, 57478L, 48649L, 48699L, 55966L, 49221L,
50774L, 59692L, 42594L, 48351L, 56188L, 38697L, 44196L, 56252L,
40911L, 47788L, 58490L, 39094L, 46059L, 55306L, 47758L, 39437L,
55195L, 71823L, 26419L, 47693L, 76630L, 28944L, 54598L, 74699L,
32291L, 58689L, 66761L, 37074L, 66098L, 68462L, 37713L, 65852L,
56563L, 37036L, 60341L, 57994L, 38726L, 58046L), Unemployment.rate = c(3.21299304812096,
3.21299304812096, 3.21299304812096, 3.21407730295749, 3.21407730295749,
3.21407730295749, 3.07244008464232, 3.07244008464232, 3.07244008464232,
3.08493181969057, 3.08493181969057, 3.08493181969057, 3.10614218230136,
3.10614218230136, 3.10614218230136, 3.22312556301873, 3.22312556301873,
3.22312556301873, 3.12755904901825, 3.12755904901825, 3.12755904901825,
3.23579986150285, 3.23579986150285, 3.23579986150285, 3.26468227547793,
3.26468227547793, 3.26468227547793, 3.21917119228965, 3.21917119228965,
3.21917119228965, 3.39151937106994, 3.39151937106994, 3.39151937106994,
3.36709422886676, 3.36709422886676, 3.36709422886676, 3.50615666377231,
3.50615666377231, 3.50615666377231, 3.49109767843293, 3.49109767843293,
3.49109767843293, 3.4101096182824, 3.4101096182824, 3.4101096182824,
3.44083160566247, 3.44083160566247, 3.44083160566247, 3.45075851478447,
3.45075851478447, 3.45075851478447, 3.5319782798045, 3.5319782798045,
3.5319782798045, 3.63445450113824, 3.63445450113824, 3.63445450113824,
4.14712651558611, 4.14712651558611, 4.14712651558611, 4.25985044273646,
4.25985044273646, 4.25985044273646, 4.40411017203591, 4.40411017203591,
4.40411017203591)), row.names = c(NA, -66L), class = "data.frame")
谢谢!
试试这个:
library(ggplot2)
library(ggnewscale)
#Code
ggplot() +
ggtitle("Crime rate and unemployment rate relationship \nin regions with lower unemployment rate") +
geom_point(aes(x = Unemployment.rate, y= Crime_occurrences, colour = Crime),
size = 2, data = df) +
scale_x_continuous(breaks = seq(from = 3, to = 5, by = 0.5),
limits = c(3,5),
labels = function(x) paste0(x,'%'))+
xlab("Unemployment Rate (%)") +
ylab("Crime Occurrences") +
new_scale_color()+
labs(linetype = "Crime")
输出:
一个更花哨的选择(非常感谢并归功于 @teunbrand):
#Code2
ggplot() +
ggtitle("Crime rate and unemployment rate relationship \nin regions with lower unemployment rate") +
geom_point(aes(x = Unemployment.rate, y= Crime_occurrences, colour = Crime),
size = 2, data = df) +
scale_x_continuous(breaks = seq(from = 3, to = 5, by = 0.5),
limits = c(3,5),
labels = scales::percent_format(scale = 1, accuracy = 0.1))+
xlab("Unemployment Rate (%)") +
ylab("Crime Occurrences") +
new_scale_color()+
labs(linetype = "Crime")
输出: