0

複数のグラフを表示しようとしていますが、各グラフには、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 つの出力に表示するにはどうすればよいですか?

4

0 に答える 0