Problem mit leerer Serie für geom_pointR - ggplot - darüber liegendes Liniendiagramm mit einzelnen Punkten, leere Serie für geom_points() verursacht Fehler
Ich versuche, eine wiederholbare Routine für ein Liniendiagramm für simulierte Preisreihen zu erstellen welche mit Punkten überlagert sind, die die Punkte kaufen (blaue Punkte) und verkaufen (rote Punkte) markieren.
In einigen Fällen gibt es keine Kauf- oder Verkaufspunkte, die ein leeres Objekt für geom_point erstellen, so dass es einen Fehler gibt und die Fertigstellung des Diagramms verhindert.
Beispiel die funktioniert (Kauf- und Verkaufspunkte existieren)
Time <- c(seq(1,12,1))
Prices <- c(36.23, 35.87, 36.18, 36.54, 35.96, 36.68, 37.16, 37.69, 38.15, 38.61, 39.91, 40.45)
TradingPrice_BUY <- c(36.23,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
TradingPrice_SELL <- c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,39.91,NA)
Trades<-data.frame(Time ,Prices, TradingPrice_BUY, TradingPrice_SELL)
library(ggplot2)
ggplot(data=Trades,aes(x=Time,y=Prices,group=1)) +
theme_bw() + geom_line() + xlab("Time") + ylab("Price") +
geom_point(data=Trades, aes(x=Time,y=TradingPrice_BUY),color="blue",shape=19) +
geom_point(data=Trades, aes(x=Time,y=TradingPrice_SELL),color="red",shape=19)
Beispiel für den Fall, dass sell Punkte existieren nicht
Fehler: Discrete Wert auf kontinuierliche Skala geliefert
Time <- c(seq(1,12,1))
Prices <- c(36.23, 35.87, 36.18, 36.54, 35.96, 36.68, 37.16, 37.69, 38.15, 38.61, 39.91, 40.45)
TradingPrice_BUY <- c(36.23,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
TradingPrice_SELL <- c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
Trades<-data.frame(Time ,Prices, TradingPrice_BUY, TradingPrice_SELL)
library(ggplot2)
ggplot(data=Trades,aes(x=Time,y=Prices,group=1)) +
theme_bw() + geom_line() + xlab("Time") + ylab("Price") +
geom_point(data=Trades, aes(x=Time,y=TradingPrice_BUY),color="blue",shape=19) +
geom_point(data=Trades, aes(x=Time,y=TradingPrice_SELL),color="red",shape=19)
ich versuchte, um ihn herum zu arbeiten, bekam aber andere Fehler
Fehler: Ästhetik müssen entweder Länge 1 oder die gleichen wie die Daten (1) sein: x, y, Gruppe
ggplot(data=Trades,aes(x=Time,y=Prices,group=1)) +
theme_bw() +geom_line()+xlab("Time") + ylab("Price")+
geom_point(data=subset(Trades,!is.na(Trades$TradingPrice_BUY)),aes(x=Time,y=TradingPrice_BUY),color="blue",shape=19) +
geom_point(data=subset(Trades,is.na(Trades$TradingPrice_BUY)), aes(x=1,y=Prices[1]),color=NA) +
geom_point(data=subset(Trades,!is.na(Trades$TradingPrice_SELL)), aes(x=Time,y=TradingPrice_SELL),color="red",shape=19) +
geom_point(data=subset(Trades,is.na(Trades$TradingPrice_SELL)),aes(x=1,y=Prices[1]),color=NA)
Wie umgehen Sie dieses Problem?