pyhonでADチャートを作ろうとしたのですが、色々調べても作成方法が見つからず困っています。
そもそもpyhonではADチャートが作れないのかも含めてご存知の方がいらっしゃいましたら教えて下さい。よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
ADチャートとはなんでしょうか
退会済みユーザー
2018/08/10 05:41
ADCでraspberry piに入力した値を横軸:時間軸でリアルタイムに表示させるグラフが作りたいです。
2018/08/10 10:42
それただの折れ線グラフですよね
退会済みユーザー
2018/08/11 02:41
いや、横軸が「時間軸」でしかも「リアルタイムに取り込んだ値をプロットしていく」ものなのでただの折れ線グラフではありません。
回答1件
0
「python グラフ」でぐぐるといろいろひっかかりますが。
投稿2018/08/10 05:52
総合スコア87774
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/10 08:48
はい、それで検索した結果先程説明したADチャートが見当たらなかったのでここに投稿した次第です。もし宜しければ具体的にここのサイトを見ると参考になるなどのアドバイスをよろしくお願いします。
2018/08/10 08:50
「ADチャート」というチャートは存在しません
単に縦軸をAD値にしてるだけのグラフじゃないんでしょうか
退会済みユーザー
2018/08/11 02:49
ADチャートというのは俗称なので正式名称ではないかもしれません。しかし知りたいのはそこではなく横軸が「時間軸」でしかも「リアルタイムに取り込んだ値をグラフにプロットしていく」というプログラムがpyhon2で「作れるか、作れないのか」と「もし作れるならその方法が知りたい」という事です。
2018/08/11 03:06
じゃあ
python リアルタイム グラフ
とかでいろいろ引っかかりますよ
退会済みユーザー
2018/08/11 17:07
はい、そうやって調べた結果「近いもの」は確かにあったのですが、そこからソースコードを改造して先ほど説明したような事ができるものを作ろうと試した結果、私の技量では上手くいかず、ここにアドバイスをもらいにきた次第です。そもそも「python2」で「ADCを常時実行しながら同時にグラフを常時プロットしていく」という事が出来ないなであれば別の方法に切り替えた方がいいのかなとも思いこちらにその点について詳しい方か過去に同じようなものを作ってみた方がいらっしゃったら是非アドバイス頂きたいなと思い投稿したのが現在の状況です。
2018/08/12 06:05 編集
自分で調べたり試したりしたことを質問に書くようにした方がスムーズにやり取りできます。
「こういうコードを参考にこんなコードを書いてみたが、ここが上手く動かなかった」というような内容を書いてください。
参考にしたページ等へのリンクと、あとADチャートなるものを説明しているページへのリンクも張ると良いのかなと
退会済みユーザー
2018/08/12 11:54
アドバイスありがとうございます。これと同じような書き方でもう一度質問してみます。
ADチャートとは:イメージはオシロスコープの画面のようなものを俗称で呼んでいます。オシロスコープとは→https://ja.wikipedia.org/wiki/オシロスコープ
今回python2で作ろうとしているものもオシロスコープと類似しています。
現在下記のようなMCP3208を使ったAD変換のソースコードを作りました。
///AD変換///
# coding:utf-8
import time
from gpiozero import MCP3208
# 0.1秒インターバルの永久ループ
while True:
time.sleep(0.1)
Vref = 3.2947
pot = MCP3208(channel=0)
pot2 = pot.value * Vref
print(str(pot2) + "V")
/////////////////////////////////////
次に擬似的に?入力信号を作ってリアルタイムにグラフ表示するソースコードが
https://qiita.com/hausen6/items/b1b54f7325745ae43e47
のサイトにあったので(下記コード)このソースコードに上記ソースコードと合体させようとしているのですがどのように合体させるべきか分からず困っています。
/////リアルタイムグラフ表示//////
"""
matplotlibでリアルタイムプロットする例
無限にsin関数をplotし続ける
"""
from __future__ import unicode_literals, print_function
import numpy as np
import matplotlib.pyplot as plt
def pause_plot():
fig, ax = plt.subplots(1, 1)
x = np.arange(-np.pi, np.pi, 0.1)
y = np.sin(x)
# 初期化的に一度plotしなければならない
# そのときplotしたオブジェクトを受け取る受け取る必要がある.
# listが返ってくるので,注意
lines, = ax.plot(x, y)
# ここから無限にplotする
while True:
# plotデータの更新
x += 0.1
y = np.sin(x)
# 描画データを更新するときにplot関数を使うと
# lineオブジェクトが都度増えてしまうので,注意.
#
# 一番楽なのは上記で受け取ったlinesに対して
# set_data()メソッドで描画データを更新する方法.
lines.set_data(x, y)
# set_data()を使うと軸とかは自動設定されないっぽいので,
# 今回の例だとあっという間にsinカーブが描画範囲からいなくなる.
# そのためx軸の範囲は適宜修正してやる必要がある.
ax.set_xlim((x.min(), x.max()))
# 一番のポイント
# - plt.show() ブロッキングされてリアルタイムに描写できない
# - plt.ion() + plt.draw() グラフウインドウが固まってプログラムが止まるから使えない
# ----> plt.pause(interval) これを使う!!! 引数はsleep時間
plt.pause(.01)
if __name__ == "__main__":
pause_plot()
/////////////////////////////
合体のイメージはAD変換したpot2の値をリアルタイムグラフのソースコードのどこかに代入することで作れるのかな?と思っていますが、どこに代入するべきか分からないので子の部分に関してお詳しい方がいらっしゃいましたらアドバイスお願いします。
と、いった感じで投稿しておきますのでhayataka2049さんもなにかご存知でしたらアドバイス頂けると幸いです。よろしくお願いします。
2018/08/12 12:08
質問文は再編集できます
退会済みユーザー
2018/08/12 12:19
再編集できるとは知らず再度新しく質問してしまいました。もしよろしければそちらの方もご確認頂き、ソースコードについてアドバイス等頂けると幸いです。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。