實驗:Python圖形影象處理
阿新 • • 發佈:2022-05-11
1. 準備一張照片,編寫Python程式將該照片進行影象處理,分別輸出以下效果的圖片:(a)灰度圖;(b)輪廓圖;
(c)變換RGB通道圖;(d)旋轉45度圖。
2. 假設當前資料夾中data.csv檔案中存放了2020年某飯店營業額,第一列為日期(如2020-02-03),第二列為每天交易額(如3560),檔案中第一行為表頭,其餘行為實
際資料。編寫程式,完成下面的任務,要求對結果圖形進行適當的美化:
(1)使用pandas讀取檔案data.csv中的資料,建立DataFrame物件,並刪除其中所有的缺失值;
(2)繪製第1個月的營業額折線圖,反映飯店每天的營業額情況,並把圖形儲存為本地檔案day.jpg;
(3)按月份進行統計,繪製柱狀圖顯示每個月份的營業額,並把圖形儲存為本地檔案month.jpg;
(4)按季度統計該飯店2020年的營業額資料,繪製餅狀圖顯示4個季度的營業額分佈情況,並把圖形儲存為本地檔案quarter.jpg。
1. 準備一張照片編寫Python程式將該照片進行影象處理,分別輸出以下效果的圖片:(a)灰度圖;(b)輪廓圖;
# (c)變換RGB通道圖;(d)旋轉45度圖。
from PIL import Image from PIL import ImageFilter im = Image.open('1.jpg') gray = im.convert('L') rpg= im.convert("RGB") xz = im.rotate(45) om = im.filter(ImageFilter.CONTOUR) gray.save('a.jpg') om.save('b.jpg') rpg.save('c.jpg') xz.save('d.jpg')
# 2. 假設當前資料夾中data.csv檔案中存放了2020年某飯店營業額,第一列為日期(如2020-02-03),第二列為每天交易額(如3560),檔案中第一行為表頭,其餘行為實
# 際資料。編寫程式,完成下面的任務,要求對結果圖形進行適當的美化:
# (1)使用pandas讀取檔案data.csv中的資料,建立DataFrame物件,並刪除其中所有的缺失值;
# (2)繪製第1個月的營業額折線圖,反映飯店每天的營業額情況,並把圖形儲存為本地檔案day.jpg;
# (3)按月份進行統計,繪製柱狀圖顯示每個月份的營業額,並把圖形儲存為本地檔案month.jpg;
# (4)按季度統計該飯店2020年的營業額資料,繪製餅狀圖顯示4個季度的營業額分佈情況,並把圖形儲存為本地檔案quarter.jpg。
import matplotlib import pandas import matplotlib.pyplot as plt matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # pyplot中文顯示 df = pandas.read_csv("data.csv", engine='python') df['日期'] = pandas.to_datetime(df['日期']) df[['交易額']] = df[['交易額']].astype(float) # 將交易額轉換為float型別 df = df.dropna() # 去除缺失行 plt.figure() df1 = df.head(31) # 取第一個月 df1.plot(x='日期') # 畫圖,以日期為x軸 plt.savefig('day.jpg') plt.figure() df2 = df df2['月份'] = df2['日期'].map(lambda x: x.month) # 提取出月份 df2 = df2.groupby(by='月份', as_index=False).sum() # as_inside=False不把month作為新的index,分組求和 df2.plot(x='月份', kind='bar', y='交易額') plt.savefig('month.jpg') plt.figure() one = df2[:3]['交易額'].sum() two = df2[3:6]['交易額'].sum() three = df2[6:9]['交易額'].sum() four = df2[9:12]['交易額'].sum() plt.pie([one, two, three, four], labels=['第一季度', '第二季度', '第三季度', '第四季度']) plt.savefig('quarter.jpg')