色、サイズ、位置を変更するアニメーション散布図を作成するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-05 22:21:02
オリジナル
241 人が閲覧しました

How to Create Animated Scatter Plots with Changing Colors, Sizes, and Positions?

散布図のアニメーション化: 色、サイズ、位置の変更

問題: 色、サイズ、位置を変更するアニメーション散布図を作成します。点の数は、指定されたデータ行列に基づいて動的に変化します。

データ形式:

  • データ: 形状 (ntime, npoint) を持つ Numpy ndarray
  • x: x 座標を表す形状 (npoint) を持つ Numpy ndarray
  • y: y 座標を表す形状 (npoint) を持つ Numpy ndarray

目的: 次の機能を使用して散布図をアニメーション化します:

  • scat.set_offsets(array) を更新して点の位置を変更します。ここで、array は x 座標と y 座標の 2D 配列です。
  • scat.set_sizes(array) を更新してポイントのサイズを変更します。ここで、array はサイズの 1D 配列です。
  • scat.set_array(array) を更新してポイントの色を変更します。ここで、array は 1D 配列です

解決策:

色、サイズ、位置を変更してアニメーション散布図を作成する方法を示すコード テンプレートを次に示します。 :

<code class="python">import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

# Generate random data
numpoints = 50
x, y, s, c = next(data_stream()).T

# Create a figure and axes
fig, ax = plt.subplots()

# Create a scatter plot and set its initial data
scat = ax.scatter(x, y, c=c, s=s, vmin=0, vmax=1, cmap="jet", edgecolor="k")

# Initialize FuncAnimation
ani = animation.FuncAnimation(fig, update, interval=5, init_func=setup_plot, 
                                          blit=True)

# Setup plot
def setup_plot():
    ax.axis([-10, 10, -10, 10])
    return scat,

# Data stream generator
def data_stream():
    xy = (np.random.random((numpoints, 2))-0.5)*10
    s, c = np.random.random((numpoints, 2)).T
    while True:
        xy += 0.03 * (np.random.random((numpoints, 2)) - 0.5)
        s += 0.05 * (np.random.random(numpoints) - 0.5)
        c += 0.02 * (np.random.random(numpoints) - 0.5)
        yield np.c_[xy[:,0], xy[:,1], s, c]

# Update plot
def update(i):
    data = next(data_stream())
    scat.set_offsets(data[:, :2])
    scat.set_sizes(300 * abs(data[:, 2])**1.5 + 100)
    scat.set_array(data[:, 3])
    return scat,</code>
ログイン後にコピー

このコード スニペットは、色、サイズ、位置を変更して散布図をアニメーション化する方法の例を示しています。特定の要件に合わせてデータ生成とアニメーションのパラメーターをカスタマイズできます。

以上が色、サイズ、位置を変更するアニメーション散布図を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!