いくつかのデータをプロットしようとしていますが、同じ図に 2 つのプロットをプロットすることに行き詰まっています。次のようになります。
コードは次のとおりです。
import re
import sqlite3
import matplotlib.pyplot as plt
from matplotlib.dates import datetime as dt
from matplotlib.dates import DateFormatter
...
for company in companies:
cursor.execute("select distinct url from t_surv_data where company = ? order by product_type", (company,))
urls = [r[0] for r in cursor.fetchall()]
for idx, url in enumerate(urls):
cursor.execute("select price, timestamp from t_surv_data where url = ? order by timestamp", (url,))
data = [[r[0], r[1]] for r in cursor.fetchall()]
price, date = zip(*data)
date = [dt.datetime.strptime(d, '%Y-%m-%d %H:%M:%S') for d in date]
f = plt.figure('''figsize=(3, 2)''')
ax = f.add_subplot(111)
ax.plot(date, price) # x, y
ax.xaxis.set_major_formatter(DateFormatter('%d\n%h\n%Y'))
#ax.set_ylim(ymin=0) # If I use this a break the plot
ax2 = f.add_subplot(211)
ax2.scatter(date, [1,1,-1])
ax2.xaxis.set_major_formatter(DateFormatter('%d\n%h\n%Y'))
#ax2.set_ylim(ymin=-1, ymax=1) # If I use this a break the plot
plt.savefig('plt/foo' + str(idx) + '.png')
plt.close()
この質問を解決するにはどうすればよいですか:
1 - プロットが重なり合っているように見えます。これを視覚的にフォーマットして、同じ図の独立したプロットのようにするにはどうすればよいですか。
2 - このコード行を両方のプロット "ax2.xaxis.set_major_formatter(DateFormatter('%d\n%h\n%Y'))" に使用していますが、日付に同期がありません。日付は 2 つのプロットで同じでなければなりません。
誰かが私にこの質問の手がかりを与えることができますか?
よろしくお願いします、