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

实验:Python图形图像处理的更多相关文章

  1. Python图形图像处理库的介绍之Image模块

    http://onlypython.group.iteye.com/group/wiki/1372-python-graphics-image-processing-library-introduce ...

  2. python图形图像处理--验证码的制作

    from PIL import Image,ImageDraw,ImageFontimport randomfrom io import BytesIO class code(): def __ini ...

  3. python PIL 图像处理

    python PIL 图像处理 This blog is from: https://www.jianshu.com/p/e8d058767dfa Image读出来的是PIL的类型,而skimage. ...

  4. HTML5图形图像处理技术研究

    摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...

  5. python数字图像处理(17):边缘与轮廓

    在前面的python数字图像处理(10):图像简单滤波 中,我们已经讲解了很多算子用来检测边缘,其中用得最多的canny算子边缘检测. 本篇我们讲解一些其它方法来检测轮廓. 1.查找轮廓(find_c ...

  6. C&C++图形图像处理开源库

    Google三维APIO3D O3D 是一个开源的 WebAPI 用来在浏览器上创建界面丰富的交互式的 3D 应用程序.这是一种基于网页的可控3D标准.此格式期望真正的基于浏览器,独立于操作系统之外, ...

  7. 用Python做图像处理

    转自:http://blog.csdn.net/gzlaiyonghao/article/details/1852726  最近在做一件比较 evil 的事情——验证码识别,以此来学习一些新的技能.因 ...

  8. python skimage图像处理(一)

    python skimage图像处理(一) This blog is from: https://www.jianshu.com/p/f2e88197e81d 基于python脚本语言开发的数字图片处 ...

  9. python skimage图像处理(二)

    python skimage图像处理(二) This blog is from: https://www.jianshu.com/p/66e6261f0279  图像简单滤波 对图像进行滤波,可以有两 ...

随机推荐

  1. Redis缓存穿透、缓存雪崩、缓存击穿

    缓存穿透: ​ 缓存穿透,是指查询一个数据库一定不存在的数据.正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存.如果 ...

  2. vulnhub靶机djinn:1渗透笔记

    djinn:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/djinn-1,397/ 信息收集 首先我们嘚确保一点,kali机和靶机处于同一网段,查看kali i ...

  3. CPU架构:CPU架构详细介绍

    1 概述 CPU架构是CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU.目前市场上的CPU分类主要分有两大阵营,一个是intel.AMD为首的复杂指令集CPU,另一个是以IBM.A ...

  4. 排序 | 冒泡排序的优化与qsort快速排序

    冒泡排序 冒泡排序 Bubble_Sort,是极为简单的一种排序算法.虽然效率差一点,但好在具有结构简单,容易理解,易于操作等优点.冒泡排序就是把小的元素往前调或者把大的元素往后调.在相邻的两个元素间 ...

  5. 行内元素的padding和margin是否有效

    行内元素的纵向padding和margin都是不考虑的,这是css规范定义的.inline元素确实可以设置垂直方向的padding和margin值,但是inline元素的margin和padding的 ...

  6. vue2源码框架和流程分析

    vue整体框架和主要流程分析 之前对看过比较多关于vue源码的文章,但是对于整体框架和流程还是有些模糊,最后用chrome debug对vue的源码进行查看整理出这篇文章.... 本文对vue的整体框 ...

  7. CCF201609-2火车购票

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  8. js获取url查询字符串参数

    最近看js高级程序设计 对其中查询字符串参数的获得重新写了,当传递一个完整的URL的时候对查询字符串的提取 function getQueryArgs(){ var qs = (location.se ...

  9. Struts2-day1总结

    1.Struts2的基本执行流程(详见我的博客) 2.Struts2的分模块开发 如果有多个项目的Struts.xml写在一起,容易造成数据混乱,所以可以使用分模块的方法,在项目下新建*.xml配置文 ...

  10. re模块补充与其他模块介绍

    注:昨日写了re单个模块几个重要的点需要补充 一.re模块补充 1.findall独有的优先级别展示 res = re.findall('abc', 'abcabcabcabc') print(res ...