bbc*_*bbc 6 python matplotlib pandas
我的数据框有不均匀的时间索引.
我怎样才能找到一种绘制数据的方法,并自动将索引本地化?我在这里搜索,我知道我可以画出类似的东西
e.plot()
Run Code Online (Sandbox Code Playgroud)

但是时间索引(x轴)将是偶数间隔,例如每5分钟.如果我在前5分钟内需要100个数据,在第二个5分钟内需要6个数据,我如何均匀地绘制数据数量.并在x轴上找到正确的时间戳.
这里甚至算,但我不知道如何添加时间指数.
plot(e['Bid'].values)
Run Code Online (Sandbox Code Playgroud)

请求的数据格式示例
次,bid
2014-03-05 21:56:05:924300,1.37275
2014-03-05 21:56:05:924351,1.37272
2014-03-05 21:56:06:421906,1.37275
2014-03-05 21:56:06:421950,1.37272
2014-03-05 21:56:06:920539,1.37275
2014-03-05 21:56:06:920580,1.37272
2014-03-05 21:56:09:071981,1.37275
2014-03-05 21:56:09:072019,1.37272
这里是链接 http://code.google.com/p/eu-ats/source/browse/trunk/data/new/eur-fix.csv
这是代码,我曾经用过
import numpy as np
import pandas as pd
import datetime as dt
e = pd.read_csv("data/ecb/eur.csv", dtype={'Time':object})
e.Time = pd.to_datetime(e.Time, format='%Y-%m-%d %H:%M:%S:%f')
e.plot()
f = e.copy()
f.index = f.Time
x = [str(s)[:-7] for s in f.index]
ff = f.set_index(pd.Series(x))
ff.index.name = 'Time'
ff.plot()
Run Code Online (Sandbox Code Playgroud)
更新:
我添加了两个新的图表进行比较以澄清问题.现在我尝试使用暴力将时间戳索引转换回字符串,并将字符串绘制为x轴.格式容易搞砸了.似乎很难定制x标签的位置.


好吧,看起来你想要的是你想要在x-tick位置移动,以便每个tick之间有相同数量的点.并且您希望在这些适当定位的刻度上绘制网格.我有这个权利吗?
如果是这样:
import pandas as pd
import urllib
import matplotlib.pyplot as plt
import seaborn as sbn
content = urllib.urlopen('https://eu-ats.googlecode.com/svn/trunk/data/new/eur-fix.csv')
df = pd.read_csv(content, header=0)
df['Time'] = pd.to_datetime(df['Time'], format='%Y-%m-%d %H:%M:%S:%f')
every30 = df.loc[df.index % 30 == 0, 'Time'].values
fig, ax = plt.subplots(1, 1, figsize=(9, 5))
df.plot(x='Time', y='Bid', ax=ax)
ax.set_xticks(every30)
Run Code Online (Sandbox Code Playgroud)
