1

スライダーやその他のウィジェットでパラメーターを制御できるアニメーション グラフを作成したいと考えています。同様の図をいくつか作成する必要があるため、これをいくつかのクラスにパックして、さまざまなパラメーターで再利用したいと考えています。しかし、その前に、それがどのように機能するかを理解したいと思っていました.

このコードは、図の上部にグラフを作成し、残りは空白のままにします。ただし、x 軸と y 軸は、以下の定義済みの範囲ではなく、[-0.05,0.05] の範囲で描画されます。

グラフが必要な縮尺で描画されていることを確認するにはどうすればよいですか?

私が知らないもう 1 つのことは、ウィジェットをレイアウトに追加する方法です。座標とサイズをハードコーディングせずに gridspec に挿入して、特定のスペースに合わせて調整したいと考えています。

以下のことを試しましたが、明らかにうまくいきませんでした。これを希望どおりに機能させるにはどうすればよいですか?

import matplotlib.gridspec as gridspec
import numpy as np

from matplotlib import pyplot as plt

PI = np.pi

# Half width of the graph x-axis
x_axis = 4*PI
# x_axis offset
x_offset = 0
# Half height of the graph y-axis
y_axis = 8
# y_axis offset
y_offset = -1

fig = plt.figure()

mainGrid = gridspec.GridSpec(2, 1)
graphCell = plt.subplot(mainGrid[0, :])
graphCell.plot(xlim=(-x_axis-x_offset, x_axis-x_offset), ylim=(-y_axis-y_offset, y_axis-y_offset))
controlCell = mainGrid[1, :]
controlGrid = gridspec.GridSpecFromSubplotSpec(1, 7, controlCell)
sliderCell = controlGrid[0, 0]
sliderCount = 7
sliderGrid = gridspec.GridSpecFromSubplotSpec(sliderCount, 1, sliderCell)
sliders = []
for i in range(0, sliderCount):
    pass
    #sliders[i] = Slider(sliderGrid[0, i], "Test {}".format(i), 0.1, 8.0, valinit=2, valstep=0.01)

x_data = np.linspace(-x_axis-x_offset, x_axis-x_offset, 512)
y_data = [x for x in x_data]

line = plt.plot([], [])[0]
line.set_data(x_data, y_data)

plt.show()
4

1 に答える 1