Python ggplot发行的plotting>8个股票和legend is cu

2024-09-24 00:32:21 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,让我说,ggplot for Python是一个伟大的开始,也是对开发人员所做工作的赞扬。目前我对同一个情节有两个主要问题。如果我画了8个股票或更少,图像看起来很好,除了图例超出了数字区域(问题1)。如果我绘制了超过8只股票的图,那么该图会触发一些不稳定的线,这些线显然不能代表数据。另外,图例没有调整大小,而是没有附加股票代码(问题2)。感谢任何帮助。谢谢!在

像样的绘图代码:

import datetime
from ggplot import *
import pandas.io.data as web
import pandas as pd
import numpy as np

start = datetime.datetime(2014,1,1)
end = datetime.datetime(2014, 3,19)

stocks = ['APO','AVG','FI','ANIK','CELG','PACW','CBOE','BIIB']

stockData = {}
for ticker in stocks:
    stockData[ticker] = web.get_data_yahoo(ticker, start, end)

price = pd.DataFrame({tic: data['Adj Close'] for tic, data in stockData.iteritems()})

returns = price.pct_change()
returns = returns.apply(cumsum)

rt = returns.index
returns['Date'] = rt


# plotting the cum performance for each security

ret = pd.melt(returns, id_vars='Date') 
plot = ggplot(aes(x='Date', y='value', color='variable'),data=ret) +geom_line()

# plotting the equity curve of the theoretical portfolio

zt = returns
del zt['Date']
zt = zt.apply(np.sum, axis=1)
z = pd.DataFrame(zt, index=zt.index)
z['Date'] = rt
z.columns = ['equity curve', 'Date']


ret2 = pd.melt(z, id_vars='Date') 
plot2 = ggplot(aes(x='Date', y='value'),data=ret2) +geom_line()

print plot
print plot2

错误的绘图代码:

^{pr2}$

Tags: theimportfordatadatetimedateindexas
1条回答
网友
1楼 · 发布于 2024-09-24 00:32:21

对于问题2,这是因为ggplot没有颜色,可以添加更多颜色来解决问题,只需在代码的开头添加以下代码:

import ggplot as gg
gg.colors.COLORS.extend(["#ff0000", "#00ff00", "#0000ff"]) 

对于问题1,我们似乎需要在创建图形之后放置图例:

^{pr2}$

结果如下:

{1美元^

相关问题 更多 >