【问题标题】:Greek letters in legend in ggplotggplot中传说中的希腊字母
【发布时间】:2020-05-25 01:19:24
【问题描述】:

我真的需要修复我的情节的美学外观。如何将“alpha_1”、“beta_1”和“alpha_1+beta_1”更改为实际上是希腊字母和下标?此外,如何将我的图例中的红色更改为黑色?

这是我的代码图:Plot

pparameters <- (ggplot(data = dataframe_alpha_1_time_melt, 
                aes(x = c(506,526,546,566,586,
                          606,626,646,666,686,
                          706,726,746,766,786,
                          806,826,846,866,886,
                          906,926,946,966,986,
                          1006), y = value))
                + geom_line(aes(linetype = "alpha_1"))
                + geom_line(data = data.frame(index = c(566,606), value = c(2.3134888e-01, 2.1824306e-01)),
                            aes(x = c(566,606), y = value, linetype = "alpha_1"), 
                            color = 'red')
                + geom_line(data = dataframe_beta_1_time_melt,
                            aes(x = c(506,526,546,566,586,
                                      606,626,646,666,686,
                                      706,726,746,766,786,
                                      806,826,846,866,886,
                                      906,926,946,966,986,
                                      1006), y = value, linetype = "beta_1"))
                + geom_line(data = data.frame(index = c(566,606), value = c(6.9072532e-01, 7.0119969e-01)),
                                              aes(x = c(566,606), y = value, linetype = "beta_1"),
                                              color = 'red')
                + geom_line(data = dataframe_phi_1_time_melt,
                            aes(x = c(506,526,546,566,586,
                                      606,626,646,666,686,
                                      706,726,746,766,786,
                                      806,826,846,866,886,
                                      906,926,946,966,986,
                                      1006), y = value, linetype = "alpha_1+beta_1"))
                + geom_line(data = data.frame(index = c(566,606), value = c(2.3134888e-01+6.9072532e-01,2.1824306e-01+7.0119969e-01)),
                            aes(x = c(566,606), y = value, linetype = "alpha_1+beta_1"),
                            color = 'red')
                + scale_linetype_manual(name = "Parameter values", 
                                        values = c("alpha_1" = "dotted",
                                                   "beta_1" = "dashed",
                                                   "alpha_1+beta_1" = "solid"),
                                        na.value = 0)
                + ggtitle("GARCH-parameters")
                + theme(plot.title = element_text(hjust = 0.5)) 
                + xlab("Index") 
                + xlim(506,1006)
                + ylab("Parameter"))

请不要讨厌我丑陋的编码...

更新:这是数据框:

alpha_0_time <- c(1.1748204e-07, 5.0480320e-06, 5.3019681e-06, 4.6938408e-06, NA,
                  4.6302995e-06, 4.7767390e-06, 4.7836535e-06, 4.7671368e-06, 4.6037647e-06,
                  5.1590071e-06, 4.4693325e-06, 4.0124395e-06, 4.1799942e-06, 4.0282396e-06,
                  4.0504593e-06, 4.1409772e-06, 4.1530203e-06, 4.0975707e-06, 4.0765892e-06,
                  4.2088018e-06, 4.0489639e-06, 4.2625406e-06, 4.3364828e-06, 4.2168075e-06,
                  4.1120033e-06)

alpha_1_time <- c(1.9677291e-02, 1.9698912e-01, 2.4010802e-01, 2.3134888e-01, NA,
                  2.1824306e-01, 2.1745388e-01, 2.1548852e-01, 2.1406954e-01, 2.1061723e-01,
                  2.1177395e-01, 1.9742529e-01, 1.9495637e-01, 2.1085685e-01, 2.0148171e-01,
                  2.0133930e-01, 2.0371192e-01, 2.0661984e-01, 2.0060420e-01, 1.9862234e-01,
                  2.1361334e-01, 2.0753846e-01, 2.1759517e-01, 2.1918565e-01, 2.1961464e-01,
                  2.1746189e-01)

beta_1_time <- c(9.7435188e-01, 6.8629419e-01, 6.5772942e-01, 6.9072532e-01, NA,
                 7.0119969e-01, 6.9709570e-01, 6.9576082e-01, 6.9445402e-01, 6.9850120e-01,
                 6.9681839e-01, 7.2815250e-01, 7.4638895e-01, 7.3267263e-01, 7.4284978e-01,
                 7.4086609e-01, 7.3701197e-01, 7.3802934e-01, 7.4300428e-01, 7.4309692e-01,
                 7.3343073e-01, 7.4187524e-01, 7.3044531e-01, 7.2588079e-01, 7.2618486e-01,
                 7.2795289e-01)

phi_1_time <- alpha_1_time+beta_1_time


dataframe_alpha_1_time <- data.frame(index = c(506,526,546,566,586,
                                               606,626,646,666,686,
                                               706,726,746,766,786,
                                               806,826,846,866,886,
                                               906,926,946,966,986,
                                               1006), values = alpha_1_time)
dataframe_alpha_1_time_melt <- melt(dataframe_alpha_1_time, id = c('index'))

dataframe_beta_1_time <- data.frame(index = c(506,526,546,566,586,
                                              606,626,646,666,686,
                                              706,726,746,766,786,
                                              806,826,846,866,886,
                                              906,926,946,966,986,
                                              1006), values = beta_1_time)
dataframe_beta_1_time_melt <- melt(dataframe_beta_1_time, id = c('index'))

dataframe_phi_1_time <- data.frame(index = c(506,526,546,566,586,
                                             606,626,646,666,686,
                                             706,726,746,766,786,
                                             806,826,846,866,886,
                                             906,926,946,966,986,
                                             1006), values = phi_1_time)
dataframe_phi_1_time_melt <- melt(dataframe_phi_1_time, id = c('index'))

【问题讨论】:

  • stackoverflow.com/q/5293715/3358272 能解决您的问题吗?
  • ggplot(mtcars, aes(mpg, disp)) + geom_point() + labs(title = expression(alpha[1]), x = expression(beta[0]), y = expression(Gamma[infinity]))

标签: r ggplot2


【解决方案1】:

您可以按照此示例使用 expression() 作为标签

library(ggplot2)

ggplot(mtcars, aes(mpg, hp, col = factor(am))) +
    geom_line() +
    scale_color_discrete(labels = c(expression(beta[1]), 
                                    expression(alpha[1] + beta[1])))

【讨论】:

  • 但是如何使用图例和线型?
  • 如果你提供数据(dataframe_alpha_1_time_meltdataframe_beta_1_time_meltdataframe_phi_1_time_melt)会更容易适应
  • 我修复了它,但是如何将图例的突出显示符号的颜色更改为黑色?现在可以找到数据框了。
  • 我不确定您在寻找什么,想要的情节会是什么样子?使用您的实际代码,您可以添加像这样的希腊字母pparameters + scale_linetype_discrete(labels = c(expression(alpha[1]), expression(alpha[1] + beta[1]), expression(beta[1])))
猜你喜欢
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
相关资源
最近更新 更多