इसलिए मैं आर में ggplot का उपयोग करके इस स्कैटरप्लॉट को बना रहा हूं। RStudio में एक नियमित r स्क्रिप्ट में नीचे सूचीबद्ध इस कोड का उपयोग करके मैं उस प्लॉट का निर्माण करने में सक्षम हूं जिसे मैं बिना किसी त्रुटि के चाहता हूं।

समस्या यह है कि जब मैं पीडीएफ से बुनाई के लिए रमार्कडाउन का उपयोग करके एक ही कोड का उपयोग करने की कोशिश कर रहा हूं। मुझे यह कहते हुए एक त्रुटि मिलती है: check_breaks_labels (ब्रेक, लेबल) में त्रुटि: ऑब्जेक्ट percent नहीं मिला।

कोई सुझाव? आशा है कि प्रतिलिपि प्रस्तुत करने योग्य उदाहरण ठीक है।

library(tidyquant)
library(timetk)
library(ggplot2)

SPY <- tq_get("SPY", from = '2010-01-01',
                  to = "2020-04-04",
                  get = "stock.prices")

FXI <- tq_get("FXI", from = '2010-01-01',
              to = "2020-04-04",
              get = "stock.prices")

QQQ <- tq_get("QQQ", from = '2010-01-01',
              to = "2020-04-04",
              get = "stock.prices")


SPY_monthly_returns <- SPY %>%
  tq_transmute(select = adjusted,
               mutate_fun = periodReturn,
               period = "monthly",      
               col_rename = "SPY_ret")

FXI_monthly_returns <- FXI %>%
  tq_transmute(select = adjusted,
               mutate_fun = periodReturn,
               period = "monthly",      
               col_rename = "FXI_ret")

QQQ_monthly_returns <- QQQ %>%
  tq_transmute(select = adjusted,
               mutate_fun = periodReturn,
               period = "monthly",      
               col_rename = "QQQ_ret")

SPY_monthly_mean_ret <- SPY_monthly_returns %>%
  select(SPY_ret) %>%
  .[[1]] %>%
  mean(na.rm = TRUE)


FXI_monthly_mean_ret <- FXI_monthly_returns %>%
  select(FXI_ret) %>%
  .[[1]] %>%
  mean(na.rm = TRUE)


QQQ_monthly_mean_ret <- QQQ_monthly_returns %>%
  select(QQQ_ret) %>%
  .[[1]] %>%
  mean(na.rm = TRUE)

SPY_monthly_sd_ret <- SPY_monthly_returns %>%
  select(SPY_ret) %>%
  .[[1]] %>%
  sd()

FXI_monthly_sd_ret <- FXI_monthly_returns %>%
  select(FXI_ret) %>%
  .[[1]] %>%
  sd()

QQQ_monthly_sd_ret <- QQQ_monthly_returns %>%
  select(QQQ_ret) %>%
  .[[1]] %>%
  sd()



d <- data.frame(meanret = c(SPY_monthly_mean_ret,FXI_monthly_mean_ret,QQQ_monthly_mean_ret), sd = c(SPY_monthly_sd_ret,FXI_monthly_sd_ret,QQQ_monthly_sd_ret), names = c("SPY","FXI","QQQ"))

ggplot(d, aes(sd,meanret, color= ticker)) + 
geom_point(size=1) + geom_text(aes(label=names)) + 
ggtitle("Monthly Risk-Return Plot") + xlab("Volatility") +
ylab("Mean Return") + theme_bw() +
scale_y_continuous(label = percent, limits = c(0, 0.02)) +
scale_x_continuous(label = percent, limits = c(0, 0.08))

0
Magnus 27 अप्रैल 2020, 13:54
2
require(scales)?
 – 
stephematician
27 अप्रैल 2020, 13:56
1
क्या आपका सारा कोड एक चंक के भीतर है? मार्कडाउन की वैश्विक पर्यावरण तक पहुंच नहीं है, केवल स्वयं ही।
 – 
mhovd
27 अप्रैल 2020, 14:00

2 जवाब

सबसे बढ़िया उत्तर

समाधान require(scales) था और उसके बाद "टिकर" निर्दिष्ट करें क्योंकि मैंने अपने कोड खंड में ऐसा नहीं किया था।

दोनों को वास्तव में जल्दी से सुझाव दिया गया था जो मेरे लिए बहुत मददगार है जो मेरी स्नातक थीसिस लिखते समय सीख रहा है। बहुत - बहुत धन्यवाद!

0
Magnus 27 अप्रैल 2020, 14:23
1
require() के बजाय library() का प्रयोग करें
 – 
Phil
27 अप्रैल 2020, 20:40

आप प्रतिशत बताना भूल गए।

ggplot(d, aes(sd,meanret, color= ticker)) + 
geom_point(size=1) + geom_text(aes(label=names)) + 
ggtitle("Monthly Risk-Return Plot") + xlab("Volatility") +
ylab("Mean Return") + theme_bw() +
scale_y_continuous(label = "percent", limits = c(0, 0.02)) +
scale_x_continuous(label = "percent", limits = c(0, 0.08))

उद्धरणों का उपयोग नहीं करते समय, ggplot percent नाम की एक वस्तु की तलाश में है जिसमें एक स्ट्रिंग होनी चाहिए। इस वजह से आप भी कर सकते हैं

p <- ggplot(...)
mylabel = "This is my label"
p + scale_x_continuous(label = "mylabel", limits = c(0, 0.08))
0
mhovd 27 अप्रैल 2020, 14:02