我尝试使用DataFrame
中的pandas
和matplotlib
在一个图中绘制两条Python
曲线。这是我的代码:
import numpy as np
import pandas as pd
from pandas import DataFrame
from matplotlib import pyplot as plt
plt.figure()
plt.hold()
df['open'].plot(color="green", linewidth=1.0, linestyle="-",label='open')
do = DataFrame(df[df['jiangjz']==True]['open'])
do.plot(marker='o',linestyle=".")
axes = plt.gca()
axes.set_xticklabels(df.index)
plt.show()
df['open']
和do
的简单数据结构是:
df: open do(one data): open
index index
2014-10-18 11 2014-12-10 12
2014-12-10 12
2015-12-10 12
df
绘制的是曲线,do
是一个点。如果我删除了hold()
行和axes
两行,则会产生一个数字,但x-lim
从第2014-12-10
开始,而不是2014-10-18
。我重置x-lim
的{{1}}以符合do
,但结果变为两位数。 df
行似乎不起作用。
答案 0 :(得分:1)
尝试从列表中进行绘图
from itertools import izip
import pylab as plt
import pandas
d1 = pandas.DataFrame( {'open': pandas.np.random.random(100)} )
d2 = pandas.DataFrame( {'open': pandas.np.random.random(100)} )
my_dfs = [d1, d2] # or in your case [ df,do]
my_opts = [ {"color":"green", "linewidth":1.0, "linestyle":"-","label":"open"},
{"marker":"o","linestyle":"."} ]
for d,opt in izip(my_dfs, my_opts):
d['open'].plot( **opt)
plt.legend()