Python seaborn中的镶嵌面和x轴选择

Python seaborn中的镶嵌面和x轴选择,python,pandas,seaborn,Python,Pandas,Seaborn,我正在使用这个数据框,其中包含来自yahoo finance的比特币数据。我设置了加密货币列表,我希望: A.将x轴限制为最近2个月 B试着把所有的图放在一起,就像在一个图表中把一个图刻面到另一个图一样,就像在R的ggplot中一样 import pandas as pd from pandas import Series,DataFrame import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.

我正在使用这个数据框,其中包含来自yahoo finance的比特币数据。我设置了加密货币列表,我希望: A.将x轴限制为最近2个月 B试着把所有的图放在一起,就像在一个图表中把一个图刻面到另一个图一样,就像在R的ggplot中一样

import pandas as pd
from pandas import Series,DataFrame
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')
%matplotlib inline

# For reading stock data from yahoo
from pandas.io.data import DataReader

# For time stamps
from datetime import datetime

# For division
from __future__ import division

tech_list = ['BTC','TTC','DGC','DEE','PPC']

end = datetime.now()
start = datetime(end.year - 1,end.month,end.day)

for stock in tech_list:   
    # Set DataFrame as the Stock Ticker
    globals()[stock] = DataReader(stock,'yahoo',start,end)

 DEE['Volume'].plot(legend=True,figsize=(10,4))
我应该改变时间定义还是seaborn本身?
谢谢

您的问题与
seaborn
无关,它是基本问题
matplotlib
stuff<代码>seaborn仅更改中人物的样式 您的案例,因此我将其从下面提供的代码中排除,但您可以 如果要更改样式,请导入它

要获取过去两个月的数据,您应该在今天之前的两个月内开始
。使用
relativedelta很容易:

from dateutil.relativedelta import relativedelta
start = dt.datetime(end.year,end.month,end.day) - relativedelta(months=2)
如果使用
padnas.DataFrame.plot()
绘图,则更改x轴的限制将更加痛苦。但是,如果要导入所有数据,然后只选择最近2个月的数据,则可以使用相同的
relativedelta
技巧,但要使用索引,如下所示:

DEE.loc[DEE.index >= end - relativedelta(months=2),'Volume'].plot()
至于把这些图表放在一起,你的问题措词不清楚,所以我只能猜测你的意思是把所有股票作为子地块放在另一个下面,如下所示:

DEE.loc[DEE.index >= end - relativedelta(months=2),'Volume'].plot()

我重写了您的代码以执行此操作:

import pandas as pd

# For reading stock data from yahoo
from pandas.io.data import DataReader

import matplotlib.pyplot as plt
%matplotlib inline

# For time stamps
import datetime as dt
from dateutil.relativedelta import relativedelta

end = dt.datetime.now()
start = dt.datetime(end.year-1,end.month,end.day)

tech_list = dict({'BTC':None,'TTC':None,'DGC':None,'DEE':None,'PPC':None})

for stock in tech_list.keys():   
    tech_list[stock] = DataReader(stock,'yahoo',start,end)

months_to_plot = relativedelta(months=2)

fig = plt.figure(figsize=(8,10))
for (n,stock) in enumerate(tech_list.keys()):
    ax = fig.add_subplot(len(tech_list),1,n)
    tech_list[stock].loc[tech_list[stock].index >= end - months_to_plot,'Volume'].plot()
    ax.set_title(stock)

plt.tight_layout()
另外,如果你想得到一个简洁的答案,请在以后的提问中更加明确。您提供的代码包含额外的行,这对于您的问题是不必要的,这使得您更难理解您到底想做什么。另一方面,你的问题并没有尽可能详细