实验: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')