【问题标题】:R: Plot lines are very thickR:情节线很粗
【发布时间】:2019-10-09 16:04:35
【问题描述】:

使用 matplot 绘制矩阵时:

matplot(t, X[,1:4], col=1:4, lty = 1, xlab="Time", ylab="Stock Value")

我的图表如下:

如何减少线条粗细?我之前使用了不同的方法,我的图表很好:

我尝试过操纵 lwd 但无济于事。

虽然试过plot(t, X[1:4097,1]),但是打印出来的线很粗。我的 R 有问题吗?

编辑:这是我用来生成矩阵 X 的代码:

####Inputs mean return, volatility, time period and time step
mu=0.25; sigma=2; T=1; n=2^(12); X0=5;
#############Generating trajectories for stocks
##NOTE: Seed is fixed. Changing seed will produce 
##different trajectories
dt=T/n
t=seq(0,T,by=dt)
set.seed(201)


X <- matrix(nrow = n+1, ncol = 4)

for(i in 1:4){
  X[,i] <- c(X0,mu*dt+sigma*sqrt(dt)*rnorm(n,mean=0,sd=1))
  X[,i] <- cumsum(X[,i])
}


colnames(X) <- paste0("Stock", seq_len(ncol(X)))

【问题讨论】:

  • 这似乎是积分过多的问题。在第二张图中,您的数据分布得很好,而在前一张图中,每个点似乎都非常不稳定。基本上每个点之间的范围很小,每个点似乎变化很大。考虑改为绘制每个n 点。例如每 10 个点:pps &lt;- seq(1, nrow(X), by = 10); matplot(t[pps], X[pps, 1:4], col=1:4, lty = 1, xlab="Time", ylab="Stock Value")。如果没有可重现的示例,这是一个可能的修复。
  • @csgroen 用我的代码编辑了问题。
  • 您需要添加type = 'l' 仅绘制t 和X 的前10 个,您将看到发生了什么
  • 你应该有两个matplots选项,线或点,分别使用type = 'l'或type = 'p'。对于线图,lty 控制线型(实线、虚线、点线等),对于点,pch 控制绘图字符。所以你需要使用matplot(..., type = 'l', lty = 1)或类似的

标签: r plot


【解决方案1】:

只需将type = "l" 添加到matplot(....)。现在画得很好。

matplot(t, X[,1:4], col=1:4, type = "l", xlab="Time", ylab="Stock Value")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2019-06-22
    • 2018-10-08
    • 1970-01-01
    相关资源
    最近更新 更多