2016-07-12 1 views
0

I already checked out this question, but it didn't solve my problem.パイロット図からデータを抽出する方法

こんにちは!私はパイロット図を持っています:

def foo(data): fig、ax = plt。サブプロット(figsize =(20、10)、DPI = 100)

xaxis = (list with x values) 
    yaxis = (numpy array with y values) 
    ax.plot(xaxis, yaxis) 

Iは、xとyの値を返すようにFOOを()たいです。私はちょうど私ができることを理解する

return xvalues, yvalues 

私は図からデータを抽出したいと思います。

私はpyplotのドキュメントを読むのに最善を尽くしましたが、私はまだかなり新しいので、何か愚かなことをしているなら、教えてください!

編集:私は十分に説明できませんでした。申し訳ありません。私はモジュールの単体テストを書こうとしていますが、その方法の1つはグラフを生成して保存することです。 foo()は必ずしもxとyのデータを返さなければならないわけではありません。プロットを適切に生成したことを確認するために使用できるものを返すことができます。私はmatplotlibにテスト用のものが組み込まれていることを知っていますが、動作させるためにはたくさんのコードを再構成する必要があります。

+3

すでにはい、かなり愚かである持っているデータを使用していません。あなたが 'xvalues'と' yvalues'を持っているなら、*使用します。そのデータをどこか別の場所に置いて、それを最初の場所に置くのではなく、どこか他の場所から取得しようとするのは、まったく愚かです。 –

+1

あなたは完全にあなたの完全な問題を説明していませんでした。そうでなければあなたの質問は意味をなさない(@Wayneは言ったように:生のデータを返します)。何を教えてくれませんでしたか?私はXYの問題を疑っています。あなたは別の問題を解決しようとしています。あなたがしようとしているこのクルーギーは、派生した問題を解決するための努力です。あなたが本当に後になっているものとしてあなたが言うなら、私たちはあなたがそれを適切に行うのを手助けすることができます。 –

+0

あなたの編集から、あなたはテストのシステム(SUT)を外部統制から隔離する、テストの原則の1つに違反していると思います。外部ライブラリとのやりとりではなく、外部ライブラリそのものの使用を除いて、_あなたのコード_をテストする必要があります。 – heltonbiker

答えて

2

私は、次のコードを使用して、シンプルなラインプロットのために何をしたいんだと思う:

import numpy as np 
import matplotlib.pyplot as plt 

def foo(xaxis, yaxis): 
    fig, ax = plt. subplots(figsize=(20, 10), dpi=100) 
    curve = ax.plot(xaxis, yaxis) 
    # curve = [Line2D object] 
    return curve[0].get_xdata(), curve[0].get_ydata() 

x,y = foo(range(10), range(0,20,2)) 
print(x,y) 
関連する問題