1. 程式人生 > 其它 >實驗:Python圖形影象處理

實驗:Python圖形影象處理

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')