Я пытаюсь отобразить несколько графиков, и у каждого графика есть два вспомогательных участка с горизонтальным расположением в одном выводе в iRuby, работающем в Google Colab Laboratory.
Я впервые использовал Nyaplot
, но это не работает. Я не знаю почему, но это просто не дало мне ответа.
Это мой источник, чтобы проверить, работает ли он:
require 'nyaplot'
plot = Nyaplot::Plot.new
plot.add(:bar, ['Persian', 'Maine Coon', 'American Shorthair'], [10,20,30])
plot.x_label("Species")
plot.y_label("Number")
p = Nyaplot::Frame.new
p.add(plot)
p.show
и это вывод:
#<CZTop::Socket::PUB:0x5609e3406f80 last_endpoint="tcp://127.0.0.1:42375">
и ничего более.
Так что я изменился на Matplotlib :: Pyplot
, и он работал нормально. (За исключением того, что это было слишком медленно, когда я пытаюсь использовать подзаговор.) Но когда я попытался отобразить несколько графиков в одной ячейке, каждый вывод был объединен, поэтому я не могу его использовать.
Протестировал этот пример кода:
def a
plt = Matplotlib::pyplot
xs = [*1..100]
ys = xs.map {|x| Math.sin(Math::PI * x / 20.0) + 0.1 * (rand - 0.5) }
ys2 = xs.map {|x| Math.cos(Math::PI * x / 20.0) + 0.1 * (rand - 0.5) }
plt.subplot(2,1,1)
plt.plot(xs, ys, "r", label: "Hello")
plt.title("a")
plt.plot(xs, ys2, "b", label: "GoodBye")
plt.legend
plt.subplot(2,1,2)
plt.plot(ys, xs, "r", label: "hello?")
plt.plot(ys2, xs, "b", label: "goodbye?")
plt.title("b")
plt.legend
plt.show
end
a()
a()
a()
и получил это изображение
Итак, я изменил на daru-view
, но он не может отображать несколько графиков в одном выводе, просто вызывая show_in_iruby
более одного раза. Кроме того, мне нужно что-то вроде subplot в matplotlib, но я не могу найти некоторые с горизонтальным расположением.
с этим кодом:
Daru::View.plotting_library = :googlecharts
idx = Daru::Index.new ['a', 'b', 'c']
df_1 = Daru::DataFrame.new([[1,2,3], [1,2,3], [1,3,5]])
df_1.vectors = idx
idx2 = Daru::Index.new ['a', 'b', 'c']
df_2 = Daru::DataFrame.new([[1,2,3], [1,2,3], [1,2,3]])
df_2.vectors = idx2
options = {title: "name", colors: ["red", "blue"]}
plt1 = Daru::View::Plot.new(df_1, options)
plt2 = Daru::View::Plot.new(df_2, options)
plt1.show_in_iruby
plt2.show_in_iruby
получил изображение вот так
Что я должен сделать, чтобы отобразить несколько графиков в одном выводе?