使用pandas绘制DataFrame时:
import pandas as pd
import matplotlib.pyplot as plt
from StringIO import StringIO
mycsv = StringIO("""
time;openBid;highBid;lowBid;closeBid;openAsk;highAsk;lowAsk;closeAsk;volume
2015-12-06T22:00:00.000000Z;1.08703;1.08713;1.08703;1.08713;1.08793;1.08813;1.08793;1.08813;2
2015-12-07T22:00:05.000000Z;1.08682;1.08682;1.08662;1.08662;1.08782;1.08782;1.08762;1.08762;2
2015-12-08T22:01:20.000000Z;1.08683;1.08684;1.08681;1.08684;1.08759;1.08768;1.08759;1.08768;4
2015-12-09T22:01:30.000000Z;1.08676;1.08676;1.08676;1.08676;1.0876;1.0876;1.0876;1.0876;1
2015-12-10T00:03:00.000000Z;1.08675;1.08675;1.08675;1.08675;1.08737;1.08737;1.08737;1.08737;1
2015-12-06T22:03:10.000000Z;1.08675;1.08675;1.08675;1.08675;1.08728;1.08728;1.08728;1.08728;1
2015-12-06T22:03:50.000000Z;1.08676;1.08676;1.08676;1.08676;1.08728;1.08728;1.08728;1.08728;1
""")
df = pd.read_csv(mycsv, delimiter=';', parse_dates=True, index_col='time', header=0)
spr = df['lowAsk']-df['lowBid']
spr.plot()
plt.show()
我明白了:
如何在x轴上为每天添加刻度+标签+网格?
示例:Sun 06, Mon 07, Tue 08
等
我尝试了各种各样的事情,例如plt.axis(...)
,但它几乎没有成功。
答案 0 :(得分:1)
您可以使用DayLocator
中的DatesFormatter
和matplotlib.dates
执行此操作。
来自文档:
勾选每月每天的出现次数
和
使用
strftime()
格式字符串。
因此,在您的情况下,我们要将格式字符串设置为"%a %d"
以获取Mon 07
等。
当您拨打major_locator
时,我们为major_formatter
返回的xaxis
的{{1}} Axes
和pandas
设置了这些1} p>
以下是你的例子:
spr.plot()