#!.venv/bin/python from db_con import DbConnect from matplotlib import pyplot as plt from matplotlib import ticker from datetime import date, timedelta import csv con = DbConnect("olx_data.db") con.get_connection() query = """ select * from olx_data; """ data = con.get_data(query) dates = [] rent = [] sell = [] #exchange = [] for i in data: sell.append(i[3]) rent.append(i[4]) # exchange.append(i[5]) dates.append(date.fromisoformat(i[6])) firstday = dates[0] dates = [firstday-timedelta(days=x) for x in range(91 - len(dates), 0, -1)] + dates sell = [0] * (90-len(sell)) + sell rent = [0] * (90-len(rent)) + rent #exchange = [0] * (90-len(exchange)) + exchange plt.plot(dates[-7:], rent[-7:], label="wynajem") plt.plot(dates[-7:], sell[-7:], label="sprzedaż") plt.xlabel("data") plt.xticks(rotation=45) plt.ylim(sorted(set(sell+rent))[1]-200, max(sell+rent)+200) plt.ylabel("ilość ogłoszeń") plt.title("ogłoszenia o mieszkaniach na olx.pl (ostatnie 7 dni)") plt.gca().yaxis.set_major_locator(plt.MultipleLocator(200)) plt.legend() plt.grid() plt.savefig("week.jpg", bbox_inches="tight", dpi=150) plt.cla() plt.plot(dates[-30:], rent[-30:], label="wynajem") plt.plot(dates[-30:], sell[-30:], label="sprzedaż") #plt.plot(dates[-30:], exchange[-30:], label="zamiana") plt.xlabel("data") plt.xticks(rotation=45) plt.ylabel("ilość ogłoszeń") plt.title("ogłoszenia o mieszkaniach na olx.pl (ostatnie 30 dni)") plt.ylim(sorted(set(sell+rent))[1]-200, max(sell+rent)+200) plt.gca().yaxis.set_major_locator(plt.MultipleLocator(200)) plt.legend() plt.grid() plt.savefig("month.jpg", bbox_inches="tight", dpi=150) plt.cla() plt.plot(dates[-90:], rent[-90:], label="wynajem") plt.plot(dates[-90:], sell[-90:], label="sprzedaż") #plt.plot(dates[-90:], exchange[-90:], label="zamiana") plt.xlabel("data") plt.xticks(rotation=45) plt.ylabel("ilość ogłoszeń") plt.title("ogłoszenia o mieszkaniach na olx.pl (ostatnie 90 dni)") plt.ylim(sorted(set(sell+rent))[1]-200, max(sell+rent)+200) plt.gca().yaxis.set_major_locator(plt.MultipleLocator(200)) plt.legend() plt.grid() plt.savefig("threemonths.jpg", bbox_inches="tight", dpi=150) cursor=con.connection.cursor() cursor.execute("SELECT * FROM olx_data;") with open("data.csv", "w") as datacsv: csv_out = csv.writer(datacsv) csv_out.writerow([d[0] for d in cursor.description]) for result in cursor: csv_out.writerow(result) cursor.close()