2016-04-03 10 views
0

グラフ上に図形を描こうとしています。ここに私のコード... points = ...line = ...で始まるグラフ上に図形をプロットするMatplotlib

def graphData(self, stock): 
    stock_file = Company.objects.get(ticker_name=stock) 
    stock_file = stock_file.data 
    stock_file = stock_file.replace("[","").replace("]","").replace("'","") 
    stock_file = re.sub("(([^,]*,){5}[^,]*),\s*","\\1\n",stock_file) 
    file_name = "/home/philip/PycharmProjects/stockmarket/static/stock_data/data_file.txt" 
    file = open(file_name, "w") 

    points = [[2, 4], [2, 8], [4, 6], [6, 8]] 
    line = plt.Polygon(points, closed=None, fill=None, edgecolor='r') 

    file.write(stock_file) 
    file.close() 
    date, closep, highp, lowp, openp, volume = np.loadtxt(file_name, delimiter=",", unpack=True, converters={ 0: date_converter }) 
    fig = plt.figure() 
    ax1 = plt.subplot(1,1,1) 
    ax1.plot(date, openp) 
    ax1.plot(date, highp) 
    ax1.plot(date, lowp) 
    ax1.plot(date, closep) 
    ax1.grid(True) 
    ax1.xaxis.set_major_locator(mticker.MaxNLocator(10)) 
    ax1.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y')) 
    for label in ax1.xaxis.get_ticklabels(): 
     label.set_rotation(90) 
    plt.subplots_adjust(left=.10, bottom=.22, right=.93, top=.95) 
    plt.xlabel('Date') 
    plt.ylabel('Stock Price') 
    plt.suptitle(stock+': Stock Price') 
    plt.show() 
    plt.savefig("/home/philip/PycharmProjects/stockmarket/static/graph.svg") 

二つの別々の行は、私が試してみて、図形を描画するために追加されたコードされています。なぜこれは機能しないのですか?軸にPolygonを追加する

答えて

0

コールax.add_patch(line)ax

import numpy as np 
import matplotlib.pyplot as plt 
np.random.seed(2016) 

points = [(2, 4), (2, 8), (4, 6), (6, 8)] 
line = plt.Polygon(points, closed=None, fill=None, edgecolor='r') 

fig = plt.figure() 
ax = plt.subplot(1,1,1) 
ax.add_patch(line) 

date = np.linspace(0, 7, 100) 
openp = (3*np.sin(8*date)/date)+6 
ax.plot(date, openp) 
ax.set(xlim=(1,7), ylim=(3,9)) 
plt.show() 

enter image description here

+0

うーん。まだ動作していないようです。システムエラーかどうかを確認するために私のコードでこれを試してください。 –

+0

さて、私はこれを今プロットするようにしましたが、それ以外のデータではなく、プロットします。 –

+0

'points'座標と' date'値と株価の値の関係は何ですか?例えば ​​'(2,4)'がグラフ上のどこにあるのでしょうか? 'date'の範囲が' 2000-1-1'から '2016-1-1'までの範囲であればどこですか? – unutbu

関連する問題