我在一本书中看到了一个单色条形图,其中收盘价格与下一天相关。开盘价。有点像这样https://www.trade.education/wp-content/uploads/ohlc-chart-bar-chart.jpg,但开盘价和收盘价连在一起,所以它看起来像一条连续的线。是否有可能在R?我最接近的是barChart
与theme='white.mono'
,但开盘价和收盘价没有关联。
答案 0 :(得分:1)
您帖子中的链接会显示一个简单的条形图。这是quantmod
中的标准显示。
你可能指的是Kagi charts,它们以不同的方式构建。它们代表了具有某些步骤的连续线。这些步骤可能看起来好像一天的收盘价与第二天的开盘价相关,但这种解释是错误的。这不仅仅是一个图形问题,它们是根本不同的图表类型,没有间隙。
我不知道quantmod
包中有Kagi图表类型,我建议不要使用它们,除非您确定它们代表数据的方式。
答案 1 :(得分:1)
不完全清楚你想要什么,但这里有一些使用ggplot
的可能性。
# grab sample data
library(quantmod)
aapl <- getSymbols("AAPL", from="2015-06-01",auto.assign=FALSE)
names(aapl) <- sub("[^\\.]+\\.","",names(aapl)) # remove `AAPL.` from column names
df <- data.frame(date=index(aapl),aapl) # ggplot needs a data.frame
# basic OHLC plot
library(ggplot2)
library(scales) # for date_format
ggplot(df, aes(x=date))+
geom_linerange(aes(ymin=Low, ymax=High, color=ifelse(Close>Open,"Gain","Loss")))+
geom_segment(aes(xend=date-0.3, y=Open, yend=Open))+
geom_segment(aes(xend=date+0.3, y=Close, yend=Close))+
scale_color_manual(guide="none",values=c(Gain="green", Loss="red"))+
scale_x_date(labels=date_format("%b-%Y"))+
labs(x="",y="", title="AAPL")+
theme_bw()
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
# Intraday/Overnight plot
library(reshape2) # for melt(...)
df.melt <- melt(subset(df,select=c(date,Open,Close)),id="date",value.name="price")
df.melt <- df.melt[order(df.melt$date),]
ggplot(df.melt, aes(x=date, y=price)) +
geom_line()+
scale_x_date(labels=date_format("%b-%Y"))+
labs(x="",y="", title="AAPL")+
theme_bw()
# same, color coded
ggplot(df.melt, aes(x=date, y=price)) +
geom_line(aes(color=ifelse(c(diff(price),NA)>0,"Gain","Loss"), group=NA))+
scale_color_manual(guide="none",values=c(Gain="Green", Loss="Red"))+
scale_x_date(labels=date_format("%b-%Y"))+
labs(x="",y="", title="AAPL")+
theme_bw()
编辑:对OP评论的回应。
喜欢这个吗?
df.melt <- melt(subset(df,select=c(date,Open,High,Low,Close)),id="date",value.name="price")
df.melt <- df.melt[order(df.melt$date),]
ggplot(df.melt, aes(x=date, y=price)) +
geom_line()+
scale_x_date(labels=date_format("%b-%Y"))+
labs(x="",y="", title="AAPL")+
theme_bw()