2017-06-17 17 views
0
Time M1 M2 M3 M4 M5 
1  1 2 3 1 2 
2  1 3 3 1 2 
3  1 3 2 1 3 
4  2 2 3 1 2 
5  3 3 3 1 3 
6  2 3 4 1 4 
7  2 3 4 3 3 
8  3 4 4 3 4 
9  4 4 5 3 3 
10  4 4 5 5 4 

上記は10時間のデータテーブルです。毎回、5つの指標があります。 Pythonを使用してアニメーション散布(バブル)チャートを時間(10期間)に作成する方法は?Pythonを使用して散布図をアニメーション化する方法

x軸はlist = [1, 2, 3, 4, 5]と固定されており、y軸は5つの要素、すなわちtime 1, y=[1, 2, 3, 1, 2]; time 2, y=[1, 3, 3, 1, 2]のリストです。

+0

正確にはどのような問題がありますか?グラフをアニメーション化する方法を示す十分な例があります。見つかったソリューションを実装する際に特定の問題が発生した場合は、そのコードを表示し、明確な問題の説明を追加して、再度開くための質問を指名することができます。その間に[ask]と[mcve]を読むことができます。 – ImportanceOfBeingErnest

+0

あなたが参照する質問と回答はどこですか? @ ImportanceOfBeingErnest – user7246029

答えて

1

コードには非常に多くのエラーがありますが、それらをすべてリストすることはできません。しかし、以下の作品。

import matplotlib.pyplot as plt 
from matplotlib import animation as animation 
import numpy as np 
import pandas as pd 
import io 

u = u"""Time M1 M2 M3 M4 M5 
1  1 2 3 1 2 
2  1 3 3 1 2 
3  1 3 2 1 3 
4  2 2 3 1 2 
5  3 3 3 1 3 
6  2 3 4 1 4 
7  2 3 4 3 3 
8  3 4 4 3 4 
9  4 4 5 3 3 
10  4 4 5 5 4""" 

df_Bubble = pd.read_csv(io.StringIO(u), delim_whitespace=True) 

time_count = len(df_Bubble) 
colors = np.arange(1, 6) 
x = np.arange(1, 6) 
max_radius = 25 
fig, ax = plt.subplots() 
pic = ax.scatter(x, df_Bubble.iloc[0, 1:], s=100, c=colors) 
pic.set_offsets([[np.nan]*len(colors)]*2) 
ax.axis([0,7,0,7]) 

def init(): 
    pic.set_offsets([[np.nan]*len(colors)]*2) 
    return pic, 

def updateData(i): 
    y = df_Bubble.iloc[i, 1:] 
    area = np.pi * (max_radius * y/10.0) ** 2 
    pic.set_offsets([x, y.values]) 
    pic._sizes = area 
    i+=1 
    return pic, 

ani = animation.FuncAnimation(fig, updateData, frames=10, interval = 50, blit=True, init_func=init) 

plt.show() 
+0

私はpic.set_offsetsを使用したくない場合は、各期間のy軸のデータを更新したいだけです。また、期間のプロットをどのように表示するのですか?私はhttps://www.youtube.com/watch?v=JkpbY08swyAのような同様の機能が必要です – user7246029

+0

'pic.set_offsets'がデータを更新します。散布図のyデータのみを更新することはできません。 "期間のプロットをどのように表示するのですか?"理解できません。ビデオ内のグラフのコードはビデオの下のリンクにあります。 – ImportanceOfBeingErnest

+0

関数def updateData(i)ブロックで、プロットの左上隅に時間ラベル(文字列/テキスト)を追加するにはどうしたらよいでしょうか?時間の変化(1から10まで)時間:1 "、"時間:2 "、"時間:10 "?どうもありがとう。私はPythonを使用して視覚化を初めて行っています。 – user7246029

関連する問題