데이터의 경향 표시
def drawGraph():
plt.figure(figsize=(14, 10))
plt.scatter(data_result["인구수"],data_result["소계"], s= 50)
plt.xlabel("인구수")
plt.ylabel("소계")
plt.grid(True)
plt.show()
drawGraph()
np.polyfit, np.poly1d: 함수 만들기
fpl = np.polyfit(data_result["인구수"], data_result["소계"], 1)
f1 = np.poly1d(fpl)
fx = np.linspace(100000,700000, 100)
오차컬럼 만들기
data_result["오차"]=data_result["소계"]-f1(data_result["인구수"])
경향과 비교해서 데이터의 오차가 너무 나는 데이터를 계산
오차를 내림차순과 오름차순으로 정렬한 변수
df_sort_f = data_result.sort_values(by="오차", ascending=False)
df_sort_t = data_result.sort_values(by="오차", ascending=True)
from matplotlib.colors import ListedColormap
#colormap을 사용자 정의(user define)로 세팅
color_step=["#e74c3c","#2ecc71","#95a9a6","#3498db","#3498db"]
my_cmap = ListedColormap(color_step)
def drawGraph():
plt.figure(figsize=(14, 10))
plt.scatter(data_result["인구수"],data_result["소계"], s= 50, c=data_result["오차"], cmap=my_cmap)
plt.plot(fx, f1(fx), ls="dashed", lw=3, color="g")
for n in range(5):
#상위 5개
plt.text(
df_sort_f["인구수"][n]*1.02,
df_sort_f["소계"][n]*0.98,
df_sort_f.index[n],
fontsize=15)
#하위 5개
plt.text(
df_sort_t["인구수"][n]*1.02,
df_sort_t["소계"][n]*0.98,
df_sort_t.index[n],
fontsize=15)
plt.xlabel("인구수")
plt.ylabel("소계")
plt.colorbar()
plt.grid(True)
plt.show()
drawGraph()