์ฃผ์๋ฐ์ดํฐ๋ก ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
์ฃผ์ ์ข
๋ชฉ ๊ฐ์
๊ฐ๊ฒฉ ๋ณ๋ ๋ฐ์ดํฐ ์
- DB์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ํ๋ค.
- ์ด 895์ข
๋ชฉ์ด ์๊ณ ๊ฐ ์ข
๋ชฉ๋ 3952๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ค.
๋ฐฉ๋ฒ1
Dao์์ฑ
์ปฌ๋ผ๋ช
(์ข
๋ชฉ๋ช
) ๊ฐ์ ธ์ค๋ ์ฟผ๋ฆฌ ์์ฑ
def selectPrice(self,s_code):
ret=[]
sql = f"select {s_code} from stock_sync_0121"
self.cur.execute(sql)
rows = self.cur.fetchall()
for r in rows:
ret.append(r[s_code])
return ret
์ข
๋ชฉ๋ณ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ์ฟผ๋ฆฌ ์์ฑ
def selectCode(self):
ret=[]
sql = f"""
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'stock_sync_0121'
"""
self.cur.execute(sql)
rows = self.cur.fetchall()
for r in rows:
ret.append(r['COLUMN_NAME'])
ret.remove('in_time')
return ret
์ ์ฒด ์ฝ๋
import pymysql
class StockSyncDao:
def __init__(self):
self.conn = pymysql.connect(host='localhost', port=3305,
user='root', password='python',
db='_stock_old', charset='utf8')
self.cur = self.conn.cursor(pymysql.cursors.DictCursor)
def selectPrice(self,s_code):
ret=[]
sql = f"select {s_code} from stock_sync_0121"
self.cur.execute(sql)
rows = self.cur.fetchall()
for r in rows:
ret.append(r[s_code])
return ret
def selectCode(self):
ret=[]
sql = f""" SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'stock_sync_0121' """
self.cur.execute(sql)
rows = self.cur.fetchall()
for r in rows:
ret.append(r['COLUMN_NAME'])
ret.remove('in_time')
return ret
def __del__(self):
self.cur.close()
self.conn.close()
if __name__ == '__main__':
์ฃผ์ ๋ฐ์ดํฐ ๊ฐ์ ธ์์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
import matplotlib.pyplot as plt
from day16.stocksyncdao import StockSyncDao
import numpy as np
sd = StockSyncDao()
arr_code = sd.selectCode()
arr_price = []
for i in arr_code:
arr_price.append(sd.selectPrice(i))
length = len(arr_price[0])
x = np.zeros(length)
y = []
for i in range(length):
y.append(i)
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
for idx, z in enumerate(arr_price):
z_n = np.array(z)
percentage = z_n/z_n[0]
ax.plot(x + idx, y, percentage)
plt.show()
- x์ถ : ํ ์ข
๋ชฉ์ ์ ์ฒด ๊ฐ๊ฒฉ์ ๊ฐฏ์ ๋งํผ 0์ ์ฐ์
- y์ถ : ์ ์ฒด๊ฐ๊ฒฉ ๊ฐฏ์์ ๋ฒ์๋งํผ 0๋ถํฐ 1์ฉ ์ฆ๊ฐ์ํจ ๊ฐ์ ๋ฃ์
- z์ถ : ๊ฐ๊ฒฉ์ ๋ณํ
- for๋ฌธ์ ๊ฐฏ์ : ์ค์ ์ข
๋ชฉ ์
๊ฒฐ๊ณผ
๋ฐฉ๋ฒ 2
Dao
import numpy as np
import pymysql
class DaoStockSink:
def __init__(self):
self.conn = pymysql.connect(host='localhost', user='root', password='python',port=3305,
db='_stock_old', charset='utf8')
self.curs = self.conn.cursor()
def selects(self):
sql = f"""
select * from stock_sync_0121
"""
self.curs.execute(sql)
rows = self.curs.fetchall()
row_c = []
for r in rows:
len_r = len(r)
row_c.append(r[:len_r-1])
rows_n = np.array(row_c)
rows_t = np.transpose(rows_n)
return rows_t
def __del__(self):
self.curs.close()
self.conn.close()
if __name__ == '__main__':
dss = DaoStockSink()
list = dss.selects()
print("len",len(list))
for idx,tu in enumerate(list):
print(idx,tu)
๊ทธ๋ํ๊ฐ์ ธ์ค๊ธฐ
import matplotlib.pyplot as plt
import numpy as np
from day16_2.daostocksink import DaoStockSink
dss = DaoStockSink()
arrzs = dss.selects()
mylen = len(arrzs[0])
print("mylen",mylen)
arrx = np.zeros(mylen)
arry = list(range(mylen))
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
for idx,arrz in enumerate(arrzs):
ax.plot(arrx+idx,arry,arrz/arrz[0])
plt.show()