过去几个月练习总结了python的基础知识(基础语法),大概熟悉了django框架(结构运行),接下来准备学习python的第三方类库比如数学二维图形和图像处理等。接下来要总结的就是二维图形的生成比如线状图,图像(片)处理比如剪裁上色等;总结的不能面面俱到,列出几个主要的操作,希望大家多多指点。代码是在django框架里写的,本地访问端口是8000,路由是/user和/pic。
调试操作流程:
1.编写好代码
2.终端执行命令: python manage.py runserver 0.0.0.0:8000
3.浏览器里输入: http://127.0.0.1:8000/user
首先上代码和效果图:需要先安装第三方类库
from django.shortcuts import render
from django.http import HttpResponse # 数据返回到页面展示
import numpy as np # python -m pip install numpy 安装第三方类库命令
from numpy.random import randn
import matplotlib.pyplot as pt
import matplotlib.mlab as mlab
import mpmath as mp
# Create your views here.
def user(request):
# 数据输出页面并终止(类似php echo ‘XX’;die;)
return HttpResponse(u'<h1>欢迎学习python')
#sin函数------------
x = np.arange(0, 360) #array([0, 1, 2, ...180, 359]) 数据对象 类似遍历循环
y = np.sin(x * np.pi / 180) #np.pi = 3.14
pt.plot(x, y) #绘制曲线
pt.xlim(0, 360) # X轴限制区间
pt.ylim(-1.2, 1.2) # Y轴限制区间
pt.title("SIN function")
pt.show()
#sin()和cos()函数------------
x = np.arange(0, 360)
y = np.sin(x * np.pi / 180)
z = np.cos(x * np.pi / 180)
pt.plot(x, y, color='blue')
pt.plot(x, z, color='red')
pt.xlim(0, 360)
pt.ylim(-1.2, 1.2)
pt.title("SIN & COS function")
pt.show(
# 反抛物线------------
mp.plot(lambda x: x * x, [-10, 10]) #python语法里 lambda 快速定义匿名函数
来点实用的:柱状图(数据统计经常用到)
# 柱状图------------
X = [0, 1, 2, 3, 4, 5] #定义X轴区间
Y = [222, 42, 455, 664, 454, 334] #Y轴数据
fig = pt.figure() #创建图表
#x X轴左边界 Y轴方向 0.4柱宽
pt.bar(X, Y, 0.4, color="green")
pt.xlabel("X-axis") # x轴标识
pt.ylabel("Y-axis")
pt.title("data bar chart")
pt.show()
# 线状图(绘制多条折线 2条)------------
names = ['5', '10', '15', '20', '25'] #界定X轴单位和间距
x = range(len(names))
y = [0.855, 0.84, 0.835, 0.815, 0.81]
y1 = [0.86, 0.85, 0.853, 0.849, 0.83]
# pl.xlim(-1, 11) # 限定横轴的范围
# pl.ylim(-1, 110) # 限定纵轴的范围
pt.plot(x, y, marker='o', mec='r', mfc='w', label=u'y=x^2') #绘制线条
pt.plot(x, y1, marker='*', ms=10, label=u'y=x^3')
pt.legend() # 让图例生效
pt.xticks(x, names, rotation=45) #刻度:刻标 刻度标签
pt.margins(0) #类似css里的边距
pt.subplots_adjust(bottom=0.15) #图片中子图的底部边距
pt.xlabel(u"time(s)X-line") # X轴标签
pt.ylabel("RMSE") # Y轴标签
pt.title("A simple plot") # 标题
pt.show()
# 线状图(绘制1条折线 1条)-----------------
pt.style.use('ggplot')
# 输入Y1值,定义X1的范围
y1 = [0.8, 0.4, 0.2, 0.1, 0.05, 0.025, 0.0125, 0.00625, 0.0031, 0.0016]
x1 = range(0, 10)
fig = pt.figure()
ax1 = fig.add_subplot(1, 1, 1)
# 每条折线都可以通过选项进行设置,使用不同的数据点类型、颜色和线型
ax1.plot(x1, y1, marker=r'o', color=u'blue', linestyle='-', label='Blue Solid')
ax1.xaxis.set_ticks_position('bottom')
ax1.yaxis.set_ticks_position('left')
# ax1.set_title('Line Plots: Markers, Colors, and Linestyles')
# 横坐标命名
pt.xlabel('Time')
# 纵坐标命名
pt.ylabel('Trust Value')
# loc='best' 指示 matplotlib 根据图中的空白部分将图例
# 放在最合适的位置。或者,你也可以使用这个参数为图例指定一个具体位置
pt.legend(loc='best')
pt.savefig('line_plot.png', dpi=400, bbox_inches='tight')
pt.show()
图像处理相关===================
def pic(request):
# 图像处理--Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内。如open、save、conver、show…等功能。
# convert()函数,用于不同模式图像之间的转换。PIL中有九种不同模式,分别为1,L,P,
from PIL import Image ##调用库
im = Image.open("E:/beautygirl.jpg") #文件存在的路径
#im.show() # 调用系统图片查看器,打开图片
im.save("E:/beautygirl.png") ## 将"E:\beautygirl.jpg"保存为"E:\beautygirl.png"
im = Image.open("E:/beautygirl.png") ##打开新的png图片
print(im.format, im.size, im.mode)
# 图片变成灰色-------------
rgb2xyz = (0.412453, 0.357580, 0.180423, 0,
0.212671, 0.715160, 0.072169, 0,
0.019334, 0.119193, 0.950227, 0)
new_im = im.convert("L", rgb2xyz)
new_im.show()
# 左边是原图,有边是变灰图
box = (300, 300, 700, 700) ##确定拷贝区域大小
region = im.crop(box) ## 将im表示的图片对象拷贝到region中,大小为box
region.show()
#Draft类 配置图像文件加载器,使得返回一个与给定的模式和尺寸尽可能匹配的图像的版本
from PIL import Image ##调用库
im = Image.open("E:/beautygirl.jpg") #文件存在的路径
#print(im.size, im.mode)
new_im = im.draft("L", (200, 200)) #Draft类 返回一个与给定的模式和尺寸尽可能匹配的图像的版本
print(new_im.size, new_im.mode)
new_im.show()
#Rotate类 返回一个按照给定角度顺时钟围绕图像中心旋转后的图像拷贝。变量filter是NEAREST、BILINEAR或者BICUBIC之一。如果省略该变量,或者图像模式为“1”或者“P”,则默认为NEAREST。变量expand,如果为true,表示输出图像足够大,可以装载旋转后的图像。如果为false或者缺省,则输出图像与输入图像尺寸一样大。
from PIL import Image ##调用库
im = Image.open("E:/beautygirl.jpg") #文件存在的路径
im_45 = im.rotate(45)
im_30 = im.rotate(30, Image.NEAREST, 1)
print(im_45.size, im_30.size)
im_45.show()
im_30.show()
#Transform类,使用给定的尺寸生成一张新的图像,与原图有相同的模式,使用给定的转换方式将原图数据拷贝到新的图像中。在当前的PIL版本中,参数method为EXTENT(裁剪出一个矩形区域),AFFINE(仿射变换),QUAD(将正方形转换为矩形),MESH(一个操作映射多个正方形)或者PERSPECTIVE。变量filter定义了对原始图像中像素的滤波器。在当前的版本中,变量filter为NEAREST、BILINEAR、BICUBIC或者ANTIALIAS之一
print(im.size)
imtra = im.transform((200, 200), Image.EXTENT, (100, 100, 500, 500))
print(imtra.size)
imtra.show()
#输入图像的一个四边形(通过四个角定义的区域)映射到给定尺寸的长方形。变量data是一个8元组(x0,y0,x1,y1,x2,y2,x3,y3),它包括源四边形的左上,左下,右下和右上四个角。
print(im.size)
imtra = im.transform((200, 200), Image.QUAD, (0, 0, 0, 500, 600, 500, 600, 0)) #00是原点 0,500是左上角坐标 600,500是右上角坐标 600,0右下角坐标
print(imtra.size)
imtra.show()
上述代码是借鉴网上专业技术博客,实际动手操作完成;
python的第三方类库还有很多就这里就简单列举出几个常用的,还希望大家多多指点
--------------------------------谢谢---------------------------------
相关推荐
要安装`requests`库,你可以使用Python的包管理器pip。在命令行中输入以下命令: ``` pip install requests ``` 2. **基础使用**: `requests.get()`是最常见的HTTP请求方式,用于获取网页内容。例如,要获取...
为了提升开发体验,社区开发了多个第三方库,其中之一就是`arrow`库。`arrow`库被誉为“更好的Python日期时间操作类库”,它提供了更加简洁、人性化的API,使开发者能够更高效地处理日期和时间。 `arrow`库的核心...
本文主要探讨了Python第三方库在Excel文件读写中的应用,包括pyExcelerator和xlrd这两个库的具体使用方法和它们在实际操作中的优劣比较。 pyExcelerator是专门用于操作Excel文件的一个第三方类库模块。它不仅能够...
Python 操作 Excel 基础知识点 Python 作为一种解释性语言,简单高效的模式逐渐火爆。同时存在多种扩展性。永不加班系列 Python 正确操作 Excel。...* 第三方类库的使用和选择 * Python 语言在自动化办公中的应用
打包 Python 类库
本课程的内容包括从python基础、python的表达式、数据结构等基础知识,还包括迭代器、包装器等高级功能,还有正则表达式、xml、Excel等工作中常用的第三方类库的使用讲解,以及一些web应用的第三方类库的使用。...
本文档是一篇关于使用Python语言及其第三方库来实现对Excel文件进行读写操作的技术文章。作者通过具体阐述两种库(pyExcelerator和xlrd)的使用方法和细节,深入探讨了在非Windows操作系统环境下,如何方便地读取、...
标题“lstm成功,lstm实现,Python”暗示我们将讨论使用Python编程语言实现的长短期记忆网络(LSTM)在实际项目中的应用和成功案例。描述中提到“利用LSTM算法进行数据预测和数据分析”,表明LSTM主要用于时间序列...
python是一款简单易用的编程语言,特别是其第三方库,能够方便我们快速进入工作,但其第三方库的安装困扰很多... 您可能感兴趣的文章:无法使用pip命令安装python第三方库的原因及解决方法使用anaconda的pip安装第三方py
第三方类库是开发者社区提供的工具,旨在简化特定任务的实现。在串口通信中,第三方串口类库可以帮助程序员快速地集成串口功能,而无需从零开始编写所有底层代码。这些类库通常经过优化,具有良好的错误处理机制,...
安装Python第三方库最常用的方法是使用`pip`。例如,如果要安装`requests`库,可以在命令行中输入`pip install requests`。在IDE如PyCharm中,也可以通过设置菜单进行安装。加载第三方库的方式与标准库相同,也是...
这些文件可以在Python的官方网站或其他可靠的第三方资源库下载。 安装顺序一般遵循依赖关系,先安装numpy,因为matplotlib可能依赖numpy。使用pip进行离线安装的命令如下: 1. 将.whl文件复制到Python的Scripts...
pip用于安装、升级和管理Python第三方库,如numpy、pandas和matplotlib等,这些库极大地扩展了Python的功能。用户可以通过`pip install <package_name>`命令来安装所需的库。 Python环境配置是使用Python的关键步骤...
总的来说,“C++读取Excel”涉及的关键知识点包括:C++编程,第三方库的使用(如LibXL、Boost等),文件操作,以及可能的跨语言集成(如通过Python-C API)。这些技能对于开发需要处理Excel数据的C++应用程序至关...
Python第三方类库,scipy-1.1.0-cp35-none-win32.whl,scipy-1.1.0-cp35-none-win32.whl。
Python的特点可以概括为动态性、面向对象、可扩展性、可嵌入性、跨平台性、强制类型转换以及丰富的第三方类库。动态性指的是Python在执行时会进行类型检查和内存分配,这意味着在Python中可以不需要声明变量类型就能...
最后,Python具有丰富的第三方类库,这些类库涵盖了从文本处理到科学计算等多个领域,极大地提升了开发效率。 不过,Python也有其待发展之处,最主要的问题是运行速度。由于Python是一种解释型语言,其运行速度相对...
Python的官方网站(www.python.org)提供完整的语言文档和不同版本的下载,而Python扩展库的官方索引PyPI(pypi.python.org)则是一个庞大的第三方库资源库,开发者可以在这里找到并安装所需的各种扩展库。...
此外,还有众多第三方类库为开发者提供了更加丰富的功能,比如图形界面开发、网络通信、多线程处理等。以下是一些常用的C++类库介绍: ##### 1. Dinkumware C++ Library Dinkumware提供的C++类库是基于C++标准库的...