複数のグラフを表示しようとしていますが、各グラフには、Google Colaboratory で実行されている iRuby の 1 つの出力に、水平レイアウトの 2 つのサブプロットがあります。
初めて使い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
、そしてそれはうまくいきました。(ただし、サブプロットを使おうとすると遅すぎました。) しかし、複数のグラフを 1 つのセルに表示しようとすると、すべての出力がマージされてしまい、使用できません。
このサンプルコードをテストしました:
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
が、複数回呼び出すだけで、1つの出力に複数のグラフを表示することはできませんshow_in_iruby
。さらに、matplotlib の subplot のようなものが必要ですが、水平レイアウトのものは見つかりません。
このコードで:
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
複数のグラフを 1 つの出力に表示するにはどうすればよいですか?