python 第三方类库使用

阅读更多

过去几个月练习总结了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'

欢迎学习python')

python 第三方类库使用_第1张图片
 #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()

python 第三方类库使用_第2张图片
 #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(

python 第三方类库使用_第3张图片

 # 反抛物线------------

    mp.plot(lambda x: x * x, [-10, 10])     #python语法里 lambda 快速定义匿名函数

python 第三方类库使用_第4张图片

 来点实用的:柱状图(数据统计经常用到)

# 柱状图------------

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

python 第三方类库使用_第5张图片
 # 线状图(绘制多条折线 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()

python 第三方类库使用_第6张图片
 # 线状图(绘制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()

python 第三方类库使用_第7张图片
 图像处理相关===================

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

# 左边是原图,有边是变灰图

python 第三方类库使用_第8张图片
    
box = (300, 300, 700, 700)  ##确定拷贝区域大小

    region = im.crop(box)  ##  将im表示的图片对象拷贝到region中,大小为box

    region.show()

python 第三方类库使用_第9张图片
#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()

python 第三方类库使用_第10张图片
    
 #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()


python 第三方类库使用_第11张图片
   #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()

python 第三方类库使用_第12张图片
  #输入图像的一个四边形(通过四个角定义的区域)映射到给定尺寸的长方形。变量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 第三方类库使用_第13张图片
 

 上述代码是借鉴网上专业技术博客,实际动手操作完成;

python的第三方类库还有很多就这里就简单列举出几个常用的,还希望大家多多指点

--------------------------------谢谢---------------------------------


 

  • python 第三方类库使用_第14张图片
  • 大小: 4.8 KB
  • python 第三方类库使用_第15张图片
  • 大小: 17.4 KB
  • python 第三方类库使用_第16张图片
  • 大小: 22.1 KB
  • python 第三方类库使用_第17张图片
  • 大小: 20 KB
  • python 第三方类库使用_第18张图片
  • 大小: 14.8 KB
  • python 第三方类库使用_第19张图片
  • 大小: 24.2 KB
  • python 第三方类库使用_第20张图片
  • 大小: 19.7 KB
  • python 第三方类库使用_第21张图片
  • 大小: 2 KB
  • python 第三方类库使用_第22张图片
  • 大小: 363.6 KB
  • python 第三方类库使用_第23张图片
  • 大小: 190.8 KB
  • python 第三方类库使用_第24张图片
  • 大小: 102.2 KB
  • python 第三方类库使用_第25张图片
  • 大小: 839.7 KB
  • python 第三方类库使用_第26张图片
  • 大小: 74 KB
  • python 第三方类库使用_第27张图片
  • 大小: 82.1 KB
  • 查看图片附件

你可能感兴趣的:(python第三方类库)