# Python 期末報告
```python=
! pip install gradio
# Colab 進行matplotlib繪圖時顯示繁體中文
# 下載台北思源黑體並命名taipei_sans_tc_beta.ttf,移至指定路徑
!wget -O TaipeiSansTCBeta-Regular.ttf https://drive.google.com
/ucid=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_&export=download
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import fontManager
# 改style要在改font之前
# plt.style.use('seaborn')
fontManager.addfont('TaipeiSansTCBeta-Regular.ttf')
mpl.rc('font', family='Taipei Sans TC Beta')
import numpy as np
import matplotlib.pyplot as plt
import gradio as gr
def data(a):
a = int(a)
b = 112-a
x = [122.9, 123, 122.4, 121.5, 120.7, 121.5,123.1,122.3,
121.8,121.1,121.9,121,121.4,121.3,122.1,122.7,119.5,
123.3,121.95,121.05,119.5,119.8]
y = [26.1, 26.5, 26.3, 25.1, 23.3, 23.2, 25.6,25.8,25.5,
24.7,24.4,24.3,23.8,22.3,23,24.2,24.5,26.55,26,23.9,
25.4,26.2]
sizes = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
fig = plt.figure(figsize=(20,18))
ax = fig.add_subplot(111)
ax.set_xlim([119, 124])
ax.set_ylim([21, 27])
filepath = 'https://raw.githubusercontent.com/fsiofjsd/
computer-class/main/midu.csv'
row_index = b
data = np.genfromtxt(
filepath, delimiter=',',
skip_header=1,
dtype=float,
usecols=(row_index,),
unpack=True,
encoding='UTF-8')
for i in range(22):
if 0< data[i] <= 100:
sizes[i] = 500
elif 100< data[i] <=1000:
sizes[i] = 2000
elif 1000< data[i] <=3000:
sizes[i] = 5000
elif 3000< data[i] <=5000:
sizes[i] = 7500
elif 5000< data[i] <=7000:
sizes[i] = 12000
elif 7000< data[i] <=10000:
sizes[i] = 15000
for i in range(len(x)):
plt.text(x[i], y[i],
data[i],
fontsize=20,
horizontalalignment='center',
verticalalignment='center')
from skimage import io
picture = 'https://raw.githubusercontent.com/fsiofjsd/
computer-class/main/Taiwan.png'
img = io.imread(picture)
ax.imshow(img, extent=[119, 124, 21, 27], alpha=0.5)
ax.scatter(x, y, s=sizes,alpha=0.15)
ax.set_title('台灣人口密度地圖')
return fig
inputs = gr.Text(label="請輸入97至111間任意年份")
outputs = gr.Plot()
demo = gr.Interface(
fn=data,
inputs=inputs,
outputs=outputs,
title="台灣人口密度點陣圖",
cache_examples=True,)
demo.launch()
```