#r #ggplot2 #text #scatter-plot
#r #ggplot2 #текст #точечная диаграмма
Вопрос:
Я пытаюсь создать точечную диаграмму x-y. Я не возражаю, если это в plot или ggplot2. Я мало что знаю о каждом, но я хотел бы привести пример в обоих, если вы не возражаете. Я хотел бы иметь метки на точках.
Ниже приведен код и dput:
tickers <- rownames(x2)
library(zoo)
plot(x2,
main= "Vol vs Div",
xlab= "Vol (in %)",
ylab= "Div",
col= "blue", pch = 19, cex = 1, lty = "solid", lwd = 2)
text(x=x2$Volatility101,y=x2$`12m yield`, labels=tickers,cex= 0.7, pos= 3)
x2:
structure(list(Volatility101 = c(25.25353177644, 42.1628734949414,
28.527736824123), `12m yield` = c("3.08", "7.07", "4.72")), class = "data.frame", row.names = c("EUN",
"HRUB", "HUKX"))
Ответ №1:
Вот tidyverse
решение.
library(ggplot2)
library(tidyr)
library(dplyr)
library(ggrepel)
x2 %>%
rownames_to_column(var = "tickers") %>%
ggplot(aes(x = Volatility101, y = `12m yield`))
geom_point(color = "blue")
geom_text_repel(aes(label = tickers))
ggtitle("Vol vs Div")
xlab("Vol (in %)")
ylab("Div")
theme_classic()
Ответ №2:
Я был удивлен, что plot
функция вообще работала. Значения Y являются символьными значениями. Исправление этого в текстовом вызове приводит к размещению текста в ожидаемых местах
text(x=x2$Volatility101,y=as.numeric(x2$`12m yield`) .1, labels=tickers,
cex= 0.7, col='black')
Пара замечаний о представлении вопроса: неясно (и вводит в заблуждение), почему ggplot2 является тегом. plot
Функция является общей, и в данном случае она использует базовую графику, а не какую-либо ggplot2
конкретную или grid
графику в более общем смысле. Я также думаю, что library(zoo)
вызов, вероятно, не нужен. Существует plot.zoo
функция, но в этом случае она не будет вызвана.