Несколько Ось с Plots.jl

Есть ли способ разместить второй набор данных на отдельной оси, наложенной на первый график?

using Plots; gadfly(size=(800,400))

plot(Vector[randn(100)], line = ([:green], :step))

plot!(Vector[randn(100)], line = ([:red], :step))

4 ответа

Теперь это делается путем добавления twinx() аргумент:

      plot(rand(10))
plot!(twinx(),100rand(10))

Однако есть некоторая непреднамеренная ось и поведение метки:

  1. По умолчанию надписи располагаются друг над другом.
  2. xticks наносятся поверх уже существующего графика
  3. Цвета по умолчанию не соотносятся с общим количеством серий на подзаголовке.

Поэтому предлагаю добавить дополнительные аргументы:

      plot(rand(10),label="left",legend=:topleft)
plot!(twinx(),100rand(10),color=:red,xticks=:none,label="right")

Кажется, что на данный момент все еще существует проблема корреляции всех серий, связанных с подсюжетом.

Это легко, но не работает с Gadfly. Он должен хорошо работать с PyPlot и GR. Вот пример:

введите описание изображения здесь

Если у вас есть несколько рядов, которые вы хотите построить, и вы хотите постепенно добавлять данные, вы можете сделать это следующим образом:

      p = plot()
p_twin = twinx(p)

plot!(p,x,y)
plot!(p_twin,x,y_twin)

Я могу подтвердить (для GR), используя Графики; г ()

Другие вопросы по тегам