zoukankan      html  css  js  c++  java
  • 科学计算和可视化

    一、numpy&matplotlib读书笔记。

    (一)numpy库的笔记:

    简述:numpy 库处理的最基础数据类型是由同种元素构成的多维数组(ndarray),简称“数组”。 数组中所有元素的类型必须相同,数组中元素可以用整数索引,序号从0开始。ndarray 类型的维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。一维数组的秩为1,二维数组的秩为2,二维数组相当于由两个一维数组构成。

    1.创建数组函数:

     2.查看ndarray 类型有一些基本属性

     3.ndarray 类的形态操作方法

     4.ndarray 类的索引和切片方法

     5.numpy 库的算术运算函数

     6.numpy 库的比较运算函数

    7.numpy 库的其他运算函数

    (二)matplotlib的笔记:

    简述:matplotlib 库由一系列有组织有隶属关系的对象构成,这对于基础绘图操作来说显得过于复杂。因此,matplotlib 提供了一套快捷命令式的绘图接口函数,即pyplot 子模块。pyplot 将绘图所需要的对象构建过程封装在函数中,对用户提供了更加友好的接口。pyplot 模块提供一批预定义的绘图函数,大多数函数可以从函数名辨别它的功能。matplotlib.pyplot 库的plt 子库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作,比如创建绘图区域、添加标注或者修改坐标轴等。 这些函数采用plt.<b>()形式调用,其中<b>是具体函数名称。

    1.plt 库的绘图区域函数

     2.使用figure()函数创建一个全局绘图区域,并且使它成为当前的绘图对象,figsize参数可以指定绘图区域的宽度和高度,单位为英寸。鉴于figure()函数参数较多,这里采用指定参数名称的方式输入参数plt.figure(figsize=(8,4))

    3.subplot()都用于在全局绘图区域内创建子绘图区域,其参数表示将全局绘图区域分成nrows 行和ncols 列,并根据先行后列的计数方式在plot_number 位置生成一个坐标系,实例代码如下,三个参数关系如图10.3 所示。其中,全局绘图区域被风割成3x2 的网格,其中,在第4 个位置绘制了一个坐标系。

     

    4.axes()默认创建一个subplot(111)坐标系,参数rec = [left,bottom,width,height]中四个变量的范围都为[0,1],表示坐标系与全局绘图区域的关系;axisbg 指背景色,默认为white。

    5.plt 库的读取和显示函数

     6.plt 库的基础图表函数

     7.plt 库的基础图表函数

    8.plt 库的基础图表函数

     9.plt 库的坐标轴设置函数

     10.plt 库的标签设置函数

     11.plt 库的标签设置函数

     12.plt 库的区域填充函数

     

    13.字体表

    'font.family' 用于显示字体的名字
    'font.style' 字体风格,正常'normal'或斜体'italic'
    'font.size' 字体大小,整数字号或者'large','x-small'

    二、Python123成绩的雷达图。

     1 #上一周考试的每一道题得分情况
     2 import numpy as np
     3 import matplotlib.pyplot as plt
     4 import matplotlib
     5 matplotlib.rcParams['font.family']='SimHei'
     6 matplotlib.rcParams['font.sans-serif'] = ['SimHei']
     7 labels = np.array(['第一题','第二题','第三题','第四题','第五题','第六题'])
     8 nAttr = 6
     9 data = np.array([10,10,0,10,10,10]) 
    10 angles = np.linspace(0,2*np.pi,nAttr, endpoint=False)
    11 data = np.concatenate ((data,[data[0]]))
    12 angles = np.concatenate((angles,[angles[0]]))
    13 fig = plt.figure(facecolor="white")
    14 plt.subplot(111, polar= True)
    15 plt.plot (angles ,data, 'bo-' ,color ='g' ,linewidth=2)
    16 plt.fill (angles , data, facecolor ='g' , alpha=0.25)
    17 plt.thetagrids (angles*180/np.pi, labels)
    18 plt.figtext(0.52, 0.95,'上周考试每道题得分雷达图',ha='center')
    19 plt.grid (True)
    20 plt.savefig( '成绩图.JPG')
    21 plt.show ()

    三、自定义手绘风。

     1 #shouhui.py 
     2 from PIL import Image
     3 import numpy as np
     4 vec_el = np.pi/2.2                        
     5 vec_az = np.pi/4                          
     6 depth = 100                                   
     7 im = Image.open('F:荷花.jpg').convert('L')
     8 a =np.asarray (im).astype('float')
     9 grad =np.gradient (a)                   
    10 grad_x,grad_y = grad                  
    11 grad_x = grad_x*depth/100 
    12 grad_y = grad_y*depth/100
    13 dx = np.cos (vec_el) *np.cos(vec_az)      
    14 dy = np.cos (vec_el) *np.sin(vec_az)         
    15 dz = np. sin(vec_el)             
    16 A = np.sqrt(grad_x**2 + grad_y**2 + 1)
    17 uni_x=grad_x/A
    18 uni_y = grad_y/A
    19 uni_z = 1/A
    20 a2 = 255* (dx*uni_x + dy*uni_y + dz*uni_z) 
    21 a2 = a2.clip(0,255)
    22 im2 =Image.fromarray (a2. astype('uint8'))  
    23 im2.save('荷花手绘.jpg')

     

    四、绘制感兴趣的数学规律。

     1 import numpy as np
     2 import pylab as pl
     3 import matplotlib.font_manager as fm
     4 import matplotlib
     5 t=np.arange(0.0,2.0*np.pi,0.01)
     6 s=np.sin(t)
     7 z=np.cos(t)
     8 pl.plot(t,s,label='正弦')
     9 pl.plot(t,z,label='余弦')
    10 pl.xlabel('x-变量',fontproperties='SimHei',fontsize=18)
    11 pl.ylabel('y-正弦余弦函数值',fontproperties='SimHei',fontsize=18)
    12 pl.title('sin-cos函数图像',fontproperties='SimHei',fontsize=24)
    13 pl.show()

  • 相关阅读:
    springcloud概述
    springcloud-微服务架构基础
    TypeScript 教程
    提示工具以及弹出框
    Bootstrap 弹出框(Popover)插件
    JavaScript JSON
    JavaScript常见基础函数
    7种JavaScript代码调试的方法
    Bootstrap 网格系统
    文本元素
  • 原文地址:https://www.cnblogs.com/LSH1628340121/p/12836208.html
Copyright © 2011-2022 走看看