En traçant un graphique boursier avec des Pandas dans IPython
Je suis juste de commencer avec Python/Pandas et mis en place le code suivant le tracé de la S&P 500.
from pandas.io.data import DataReader
# returns a DataFrame
sp500 = DataReader("^GSPC", "yahoo", start=datetime.datetime(1990, 1, 1))
sp500.plot(figsize = (12,8))
Il ressemble à ce qui est de tracer le chemin en haut, en bas, ouvrir, fermer, adj fermer, et le volume tout sur un même graphique. Est-il un moyen facile de tracer simplement la touche adj fermer dans un graphique, et le volume à droite juste en dessous comme ils le font sur Yahoo et la plupart des autres sites de la financière? Je serais également intéressé par un exemple de tracé d'une OHLC graphique en chandeliers.
DataReader est pas plus dans les pandas. Vous devez installer pandas_datareader paquet de continuer à l'utiliser.
OriginalL'auteur Ben McCann | 2012-02-14
Vous devez vous connecter pour publier un commentaire.
Voir ici pour ma réponse à une question similaire, et ici pour de plus amples informations concernant mathplotlib des finances du chandelier graphique.
Pour obtenir l'adj proche de votre sp500, vous pouvez utiliser quelque chose comme
sp500["Adj Close"]
et de passer ensuite que la pertinente matplotlib commande plotplt.plot(datelist, sp500["Adj Close"] )
où datelist est votre liste de dates sur l'axe des abscisses.Je crois que vous pouvez obtenir datelist par le référencement
sp500.index
, voir ici pour plus d'informations.Comme pour votre problème avec le passage à la commande plot, quelque chose comme
datelist = [date2num(x) for x in sp500.index]
où la fonction date2num est de matplotlib.dates paquet.Après la mise en place des intrigue secondaire, et ensuite appeler le remplissage de commande à
fill_between_alpha
l'aire sous la ligne comme Yahoo graphique lié.Voir ici en vertu de la de Remplissage Entre Alpha et tête pour un autre extrait qui montre une fois rempli, un graphique linéaire, avec une bonne impression de la date.
Le maillon initial dispose d'un échantillon matplotlib extrait qui couvre également le format de la date et de mise en forme dans plus de détails.
J'ai vu que vous l'avez suggéré, j'ai pu de référence sp500.indice pour obtenir le datelist. J'ai essayé de plt.l'intrigue(sp500.indice sp500["adj clos"]) mais j'ai reçu le message d'erreur: ERREUR: Une erreur inattendue s'est produite tandis que les jetons d'entrée de La suite de l'exī est peut-être corrompu ou invalide, Le message d'erreur est: ('EOF en multi-ligne de déclaration", (63, 0))
En fait, il ressemble à la chose, c'est l'étouffement est sp500["adj clos"]
Ok, compris. Le capialization était à l'arrêt. sp500["Adj Fermer"] œuvres
OriginalL'auteur Appleman1234
Cela vous arrive un terrain de juste la touche Adj Près de la colonne vs l'Index de vous DataFrame (Date).
De même, Vous pouvez tracer le Volume de la même façon:
OriginalL'auteur brno792