文、意如
1. 題目說明:
請開啟PYD04.py檔案,依下列題意進行組合改寫,使輸出值符合題意要求。作答完成請另存新檔為PYA04.py再進行評分。
2. 設計說明:
請讀取果菜市場香蕉成交行情read.csv資料,主要有兩個欄位:成交日期、成交平均價。再以matplotlib輸出折線圖chart.png,輸出圖表的參數如下:
- 顯示圖例(legend):banana
- 圖表標題:Market Average Price
- 以成交日期為X軸,X軸名稱:date
- 以成交平均價為Y軸,Y軸名稱:NT$
- Y軸下限15、上限25
3. 輸入輸出:
輸入說明
讀取read.csv的內容
輸出說明
輸出chart.png圖檔
範例輸入
無
範例輸出
注意:
matplotlib套件的版本,會造成輸出的圖檔有差異,但不影響評分的準確性。
Code Judger平台會將您的程式,於伺服器中運行輸出圖檔進行評分。
題目提示:
檔案連結:read.csv (請另存檔案,必須與程式同一資料夾)
# --開始--批改評分使用,請勿變動
import matplotlib as mpl
mpl.use('Agg')
# --結束--批改評分使用,請勿變動
# 載入 matplotlib.pyplot 並縮寫為 plt
import ___ as ___
# 載入 csv 模組
import ___
x = []
y = []
# 讀入 read.csv
with open('___', 'r', encoding='utf8') as csvfile:
plots = csv.reader(csvfile, delimiter=',')
for row in plots:
x.append(row[0])
y.append(float(row[1]))
x_ticks = range(1, len(x) + 1)
plt.___(x_ticks, y, label=___)
plt.xticks(x_ticks, x)
plt.xlabel(___)
plt.ylabel(___)
plt.ylim(___)
# 添加圖表標題 title()
plt.___('Market Average Price')
plt.legend()
# 使用 savefig() 函數
plt.___('chart.png')
plt.close()
參考解答
# --開始--批改評分使用,請勿變動
import matplotlib as mpl
mpl.use('Agg')
# --結束--批改評分使用,請勿變動
import matplotlib.pyplot as plt
import csv
# 載入CSV檔案並讀取數據
x,y = [],[]
# 使用csv.reader讀取CSV檔案,以逗號為分隔符號
with open('read.csv', 'r', encoding='utf8') as fp:
plots = csv.reader(fp, delimiter=',')
for row in plots:
x.append(row[0]) # 將CSV檔案的第一欄(日期)加入x列表
y.append(float(row[1]))# 將CSV檔案的第二欄(價格)轉換為浮點數後加入y列表
x_ticks = range(1, len(x) + 1)# 設定X軸的刻度標籤為日期
"""
print("x_ticks",x_ticks) # range(1, 8)
print("x",x) #['06/14', '06/15', '06/16', '06/17', '06/18', '06/21', '06/22']
print("y",y) #y[18.1, 19.5, 21.0, 17.4, 16.9, 18.0, 16.3]
"""
# 使用Matplotlib繪製折線圖
plt.plot(x_ticks, y, label="banana") # 繪製折線圖,x軸刻度標籤為日期,y軸數據為價格,並設定圖例為"banana"
plt.xticks(x_ticks, x) # 設定X軸的刻度標籤為日期
plt.xlabel("date") # 設定X軸標題為"date"
plt.ylabel("NT$") # 設定Y軸標題為"NT$"
plt.ylim(15, 25) # 設定Y軸的數值範圍
plt.title('Market Average Price') # 設定圖表標題為"Market Average Price"
plt.legend() # 顯示圖例
plt.savefig('chart.png')
# 關閉Matplotlib圖表
plt.close()
Yiru@Studio - 關於我 - 意如