R 在ggplot下创建绘图背后的逻辑
如果我可以问一个抽象的问题[由一个具体的例子支持],关于在R中使用R 在ggplot下创建绘图背后的逻辑,r,ggplot2,R,Ggplot2,如果我可以问一个抽象的问题[由一个具体的例子支持],关于在R中使用ggplot构建复杂图表时的正确逻辑。例如,我需要创建如下图表: 我脑海中的逻辑步骤如下: 首先,我使用melt()函数将数据从宽格式转换为长格式。 其次,我创建了一个ggplot()脚本,将data=,aes(x=date,y=value,color=variable,shape=variable),size=,stat='identity'添加到geom_line()和geom_point() 第三,我添加了scale\u
ggplot
构建复杂图表时的正确逻辑。例如,我需要创建如下图表:
我脑海中的逻辑步骤如下:
首先,我使用melt()函数将数据从宽格式转换为长格式。其次,我创建了一个ggplot()脚本,将
data=,aes(x=date,y=value,color=variable,shape=variable),size=,stat='identity'
添加到geom_line()
和geom_point()
第三,我添加了scale\u shape\u manual
和scale\u color\u manual
来定制我的图表和图例
虽然我很确定它会给我一个理想的图表,但我有很多疑问,传说会被描述成我需要的方式。特别是,为同一图表的点和线使用“比例\颜色\手册”会导致图例中出现重复记录:点和线
p8.2_rest <- ggplot() +
geom_point(data = p8_ch2_points_melt, aes(x=date, y=value, colour = variable, shape= variable), size = 1, stat = 'identity') +
geom_line (data = p8_ch2_line_melt, aes(x=date, y=value, colour = variable), size = 1, stat = 'identity') +
scale_shape_manual (
guide = "legend",
name = NULL,
breaks= c('eff_int', 'int'),
labels= c('Эффективная ставка, % годовых (левая ось)', 'Стоимость суверенных займов, % годовых (левая ось)'),
values = c(15,20))+
scale_colour_manual (
guide = "legend",
name = NULL,
breaks= c('eff_int', 'int', 'debt_serv'),
labels= c('Эффективная ставка, % годовых (левая ось)', 'Стоимость суверенных займов, % годовых (левая ось)', 'Обслуживание долга, % от ВВП (левая ось)'),
values = c('#4477AA', '#117733', '#332288'))
下面是我的一个脚本,它生成了我需要的图表以及图例的问题:
p8_ch2_points_melt包含点的数据,
p8_ch2_线_熔体包含线的数据
p8.2_rest <- ggplot() +
geom_point(data = p8_ch2_points_melt, aes(x=date, y=value, colour = variable, shape= variable), size = 1, stat = 'identity') +
geom_line (data = p8_ch2_line_melt, aes(x=date, y=value, colour = variable), size = 1, stat = 'identity') +
scale_shape_manual (
guide = "legend",
name = NULL,
breaks= c('eff_int', 'int'),
labels= c('Эффективная ставка, % годовых (левая ось)', 'Стоимость суверенных займов, % годовых (левая ось)'),
values = c(15,20))+
scale_colour_manual (
guide = "legend",
name = NULL,
breaks= c('eff_int', 'int', 'debt_serv'),
labels= c('Эффективная ставка, % годовых (левая ось)', 'Стоимость суверенных займов, % годовых (левая ось)', 'Обслуживание долга, % от ВВП (левая ось)'),
values = c('#4477AA', '#117733', '#332288'))
所以,我有两个问题要问这个网站的专家:
1.创建此图表时我做错了什么?
2.为了形成在ggplot中创建图表的正确逻辑,您建议阅读哪些文献
多谢各位 尝试为比例提供相同的中断和标签,然后ggplot将合并它们(32是一个空白形状)
你想要的输出是什么?您想要一个用于颜色和形状的图例吗?是的,我需要一个常用的图例类型:一个用于线和点的图例类型,这样就不会出现双关键点和关键点标签。谢谢您的帮助。它改变了图表,尽管图例中的左键看起来像是在绘图上有三条线:两条带点,一条刚好是平的。理想情况下,我希望有两个图例键看起来像点,一个像线。我希望我的声音不要太模糊。
ggplot(p8_ch2_line_melt, aes(as.numeric(date), value, color = variable, shape = variable)) +
geom_line(size = 1) +
geom_point(data = p8_ch2_points_melt, size = 1) +
scale_shape_manual(
breaks= c('eff_int', 'int', 'debt_serv'),
name = NULL,
labels= c('Эффективная ставка, % годовых (левая ось)', 'Стоимость суверенных займов, % годовых (левая ось)', 'Обслуживание долга, % от ВВП (левая ось)'),
values = c(32, 15, 14)) +
scale_colour_manual (
breaks= c('eff_int', 'int', 'debt_serv'),
name = NULL,
labels= c('Эффективная ставка, % годовых (левая ось)', 'Стоимость суверенных займов, % годовых (левая ось)', 'Обслуживание долга, % от ВВП (левая ось)'),
values = c('#4477AA', '#117733', '#332288'))