質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

解決済

plotlyで折れ線グラフ上を点が動くようにしたいです。

Mattn
Mattn

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1回答

1グッド

1クリップ

182閲覧

投稿2022/11/01 12:34

Pythonでplotlyを使用して下記のようなcsvから折れ線グラフ(動かない)を作成して、その上をグラフの横軸であるTIMEの値をもとに点を動かしたいと思って試しています。グラフ自体は表示できたのですが、赤い点は元の位置で上下に動くのみで横に動きません。コードを見て教えていただけると嬉しいです。
イメージ説明

Python

1 2pip install plotly==5.10.0 3 4import pandas as pd 5import plotly 6import plotly.graph_objs as go 7import numpy as np 8from plotly.subplots import make_subplots 9import plotly.express as px 10import plotly.offline as offline 11 12df = pd.read_csv('No9.csv', index_col=0) 13 14x = df.iloc[:, 0] 15y = df.iloc[:, 1] 16 17# Create figure 18fig = go.Figure( 19 data = [ 20 go.Scatter(x=df.index, y=df['CH1'], name='CH1', mode="lines", line=dict(width=1, color="blue")), 21 go.Scatter(x=df.index, y=df['CH1'], name='CH1', mode="lines", line=dict(width=1, color="blue")), 22 go.Scatter(x=df.index, y=df['CH2'], name='CH2', mode="lines", line=dict(width=1, color="red")), 23 go.Scatter(x=df.index, y=df['CH3'], name='CH3', mode="lines", line=dict(width=1, color="black")), 24 go.Scatter(x=df.index, y=df['CH4'], name='CH4', mode="lines", line=dict(width=1, color="pink")) 25 ] 26) 27 28fig.update_layout(title="test", 29 title_x=0.5, 30 width=1200, height=600, 31 xaxis_title='Time', 32 yaxis_title='PPM Length', 33 yaxis_range=(900,2100), 34 xaxis_range=(0,25), 35 36 updatemenus=[dict(buttons = [ 37 dict( 38 args = [None, {"frame": {"duration": 2, 39 "redraw": False}, 40 "fromcurrent": True, 41 "transition": {"duration": 0}}], 42 label = "START", 43 method = "animate"), 44 dict( 45 args = [[None], {"frame": {"duration": 0, 46 "redraw": False}, 47 "mode": "immediate", 48 "transition": {"duration": 0}}], 49 label = "STOP", 50 method = "animate") 51 ], 52 type='buttons', 53 showactive=False, 54 y=1.05, 55 x=0.0, 56 xanchor='left', 57 yanchor='bottom')]) 58 59 60 61frames= [go.Frame(data=[go.Scatter(x=[x[i]], y=[y[i]], mode="markers", marker=dict(color="red", size=10) )]) for i in range(0, len(x))] 62fig.update_xaxes(rangeslider={"visible":True}) 63fig.update(frames=frames) 64fig.show() 65 66#fig.show() 67fig.write_html("test.html") 68plotly.offline.plot(fig) 69 70```Python
Mattn👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

ベストアンサー

animation_frame = 'Time' にした scatter (移動する点)を生成してから、折れ線グラフを追加するとよさそうです。

Python

1fig = px.scatter(df, x='Time', y='val', animation_frame='Time') 2fig.add_trace(go.Scatter(hoge, fuga, piyo)) 3fig.show()

投稿2022/11/02 04:45

fpfpfp

総合スコア55

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Mattn

2022/11/05 14:41

返信遅れました。ありがとうございます!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。