如何:多个彩色绘图线加上R中的两个y轴

时间:2017-04-20 15:57:20

标签: r plot colors axis

我是R的新手,我还没有一个线索,请先说明。

我将csv文件保存到data,标题为Cycle,Instances,MaxFitness,MinFitness 其中,循环只对行进行编号,实例超过0到100之间的正弦值,适应度值介于0.5和5之间。

所需的输出是单个svg或pdf文件,其中我有x轴上的循环,左y轴上的适应度和右y轴上的实例。除此之外,我还需要一个单独的彩色绘图线,用于min,max和实例。

我一直在搞乱情节,xyplot等等一段时间了,但有些东西通常会遗漏一些东西,让它变成"颜色","所有这些都在一个图表中#&# 34;和那样的东西。

如果有人能够对这个问题有所了解,那就太棒了。

2 个答案:

答案 0 :(得分:0)

没有任何MWE,我创建了一个:

# Create two series with different scales
# Your Cycle is then the index, from 1 to 20
x1 = runif(20, 0, 100)
x2 = runit(20, 0.5, 5)
# Plot them and add specific y axis
plot(x1/100, type ="l", yaxt ="n", ylab ="", ylim = c(0,1))
lines((x2-0.5)/4.5, col = 2)
axis(side = 2, at = c(0.2, 0.8), labels = c(20, 80))
axis(side = 4, at = c(0.5), labels = c(2.75))

所以结果是enter image description here

答案 1 :(得分:0)

我使用了包plotly

以下是代码(我的数据不是根据您的描述,但它足以显示代码)。

library("plotly")

set.seed(123)

df <- data.frame(
  Cycle=c(1:10)
  , Instances=runif(10,0,100)
  , MaxFitness=runif(10,0.5,5)
  , MinFitness=runif(10,0.5,5)
)


######
## Plot
p <- plot_ly(data = df) %>%
  add_lines(x=~Cycle, y=~MaxFitness, color="blue", name="MaxFitness") %>%
  add_lines(x=~Cycle, y=~MinFitness, color="green", name="MinFitness") %>%
  add_lines(x=~Cycle, y=~Instances, color="red", name="Instances", yaxis="y2") %>%

  layout(

    title = "Double Y Axis Example",
    yaxis=list(
      title = "left y axis"
    ),
    yaxis2=list(
      tickfont = list(color = "red"),
      overlaying = "y",
      side = "right",
      title = "right y axis"
    )

  )
p

这是输出: enter image description here

现在,您可以根据自己的喜好编辑整个情节。