2014-10-12 4 views
1

Я только начинаю учиться matplotlib. Я пытаюсь построить график yahoo char api. я попробовать эту программу, но она не работает ... есть моя программаmatplotlib plot yahoo chart api график график

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 

def graph(): 
    date, closep, highp, lowp, openp, valuep = np.loadtxt('/home/najeeb/Desktop/table.csv', delimiter=',', unpack=True, 
          converters={0: mdates.strpdate2num('%Y-%m-%d')}) 

    fig = plt.figure() 
    ax1 = fig.add_subplot(1,1,1, axisbg='w') 
    plt.plot_date(x=date, y=value, fmt='-') 

    plt.title('title') 
    plt.ylabel('value') 
    plt.xlabel('date') 
    plt.show() 
graph() 

here is CSV file

, пожалуйста, руководство меня, как решить эту проблему, и еще один какой-нибудь способ построить график запаса ... спасибо вы

ответ

0

файл CSV выглядит следующим образом:

Date,Open,High,Low,Close,Volume,Adj Close 
2014-10-17,97.50,99.00,96.81,97.67,68032200,97.67 
2014-10-16,95.55,97.72,95.41,96.26,72110700,96.26 
2014-10-15,97.97,99.15,95.18,97.54,100875400,97.54 

Ваш код np.loadtxt() пытается разобрать заголовок «Дата» в качестве даты, которая не сделал горе rk, потому что эта строка не была допустимым значением даты, поэтому я использовал skiprows=1, чтобы пропустить заголовок.

Другая проблема была, то CSV имеет 7 столбцов, а в вашем наборе вы распаковке только 6 значений

enter image description here

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
import urllib2 


url = 'http://ichart.finance.yahoo.com/table.csv?s=AAPL&d=9&e=14&f=2008&g=d&a=8&b=7&c=1984&ignore=.csv' 

def graph(): 
    date, open, high, low, close, volume, adj_close = np.loadtxt(urllib2.urlopen(url), skiprows=1, delimiter=',', unpack=True, converters={0: mdates.strpdate2num('%Y-%m-%d')}) 

    fig = plt.figure() 
    ax1 = fig.add_subplot(1,1,1, axisbg='w') 
    plt.plot_date(x=date, y=adj_close, fmt='-') 

    plt.title('Apple, 1984 to 2008') 
    plt.ylabel('Adjusted close') 
    plt.xlabel('Date') 
    plt.show() 

graph() 
+0

спасибо братан ... !!! –

+0

@NajeebChoudhary, Добро пожаловать в StackOverflow, пожалуйста, примите ответ, если он решает вашу проблему, получайте удовольствие от Python! – bakkal

Смежные вопросы