Python 之 Numpy库以及Matplotlib库的学习
2021-01-28 04:13
                         标签:图表   plt   http   ade   copy   实例   坐标系   str   ams      Numpy(Numerical Python)是Python中一个非常常用的第三方科学计算库。Numpy提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。   Matplotlib(数据可视化)是Python中一个能够提供数据绘图功能的第三方库。其pyplot 子库主要用于实现各种数据展示图形的绘制,包括线性图(折线图,函数图)、柱形图、饼图等基础而直观的图形,在平常的开发当中需要绘图时就非常有用了。      引用方式:      as 保留字与import 一起使用能够改变后续代码中库的命名空间,有助于提高代码可读性。简单说,在后续程序中,np 代替numpy,plt 将代替matplotlib.pyplot。     一、Numpy   使用Numpy库,可以执行以下操作:       - Ndarray对象   numpy 库处理的最基础数据类型是由同种元素构成的多维数组(ndarray),简称“数组”。数组中所有元素的类型必须相同,数组中元素可以用整数索引,序号从0开始。ndarray 类型的维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。一维数组的秩为1,二维数组的秩为2,二维数组相当于由两个一维数组构成。     常用的创建数组函数如下:        创建了数组后,ndarray类型有一些基本属性:         代码示例:       ndarray类的形态操作方法:    ndarray类的索引和切片:   与列表的相同,不过需要注意的是数组切片得到的是原始数组的视图,所有修改都会直接反映到源数组。如果需要得到的ndarray 切片的一份副本,需要进行复制操作,比如   arange[5:8].copy()。     - Numpy库的运算函数           这些函数中,输出参数y可选,如果没有指定,将创建并返回一个新的数组保存计算结果;如果指定参数,则将结果保存到参数中。例如,两个数组相加可以简单地写为a+b,而np.add(a, b, a)则表示a+=b。           其他运算函数:       二、Matplotlib     - Matplotlib.pyplot 库(plt 子库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作,比如创建绘图区域、添加标注或者修改坐标轴等)       plt库的绘图区域函数:               plt库的基础图表函数:               示例:      - plt库的坐标轴(plt 库有两个坐标体系;图像坐标和数据坐标。图像坐标将图像所在区域左下角视为原点,将x 方向和y 方向长度设定为1。整体绘图区域有一个图像坐标,每个axes()和subplot()函数产生的子图也有属于自己的图像坐标。axes()函数参数rect 指当前产生的子区域相对于整个绘图区域的图像坐标。数据坐标以当前绘图区域的坐标轴为参考,显示每个数据点的相对位置)         坐标轴设置函数:      标签设置函数:           示例:            区域填充函数:      示例:     三、雷达图绘制     效果如下:          四、自定义手绘风          Python 之 Numpy库以及Matplotlib库的学习 标签:图表   plt   http   ade   copy   实例   坐标系   str   ams    原文地址:https://www.cnblogs.com/Lincoln-Wong/p/12838973.html1 import numpy as np
2 import matplotlib.pyplot as plt
3 #以下三行代码是为了正确显示中文字体,更改了默认设置,‘SimHei‘表示黑体字。
4 import matplotlib
5 matplotlib.rcParams[‘font.family‘] = ‘SimHei‘
6 matplotlib.rcParams[‘font.sans-serif‘] = [‘SimHei‘]


>>> import numpy as np
>>> a = np.ones((3,3))
>>> print(a)
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
>>> a.ndim
2
>>> a.shape
(3, 3)
>>> a.dtype
dtype(‘float64‘)


>>> np.less([1, 2],[2,2])
array([ True, False], dtype=bool)


>>> plt.figure(figsize = (8, 5))
>>> plt.axes([0.1, 0.1, 0.7, 0.3], axisbg = ‘y‘)
>>> plt.show()
>>> plt.subplot(324)
>>> plt.show()
    plt库的读取和显示函数:



  

>>> plt.plot([1, 2, 4], [1, 2, 3])
>>> plt.axis()      #获得当前坐标轴范围
(1.0, 4.0, 1.0, 3.0)
>>> plt.axis([0, 5, 0, 8])       #4个变量分别是[xmin, xmax, ymin, ymax]


  

  


 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 import matplotlib
 4 matplotlib.rcParams[‘font.family‘] = ‘SimHei‘
 5 matplotlib.rcParams[‘font.sans-serif‘] = [‘SimHei‘]
 6 labels = np.array([‘第一周‘,‘第二周‘,‘第三周‘,‘第四周‘,‘第五周‘,‘第六周‘])
 7 nAttr = 6
 8 data = np.array([100, 98, 98, 100, 96, 94])    #成绩值
 9 angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)
10 data = np.concatenate((data, [data[0]]))
11 angles = np.concatenate((angles, [angles[0]]))     #这两行代码作用是进行数组的拼接
12 fig = plt.figure(facecolor="white")
13 plt.subplot(111, polar=True)
14 plt.plot(angles, data, ‘bo-‘, color = ‘g‘, linewidth = 2)
15 plt.fill(angles, data, facecolor = ‘g‘, alpha = 0.25)
16 plt.thetagrids(angles*180 / np.pi, labels)
17 plt.figtext(0.52, 0.95, ‘小明的成绩表‘, ha = ‘center‘)
18 plt.grid(True)
19 plt.savefig(‘Grade.JPG‘)
20 plt.show()



 1 from PIL import Image
 2 import numpy as np
 3 vec_el=np.pi/2.2                                           #光源的俯视角度,弧度值
 4 vec_az=np.pi/4.                                            #光源的方位角度,弧度值
 5 depth=10.                                                    #(0-100)
 6 im=Image.open("pic.jpg").convert(‘L‘)
 7 a=np.asarray(im).astype(‘float‘)
 8 grad=np.gradient(a)                                     #取图像灰度的梯度值   
 9 grad_x,grad_y=grad                                     #分别取横纵图像梯度值
10 grad_x=grad_x*depth/100.
11 grad_y=grad_y*depth/100.
12 dx=np.cos(vec_el)*np.cos(vec_az)                #光源对x轴的影响
13 dy=np.cos(vec_el)*np.sin(vec_az)                 #光源对y轴的影响
14 dz=np.sin(vec_el)                                        #光源对z轴的影响
15 A=np.sqrt(grad_x**2+grad_y**2+1.)
16 uni_x=grad_x/A
17 uni_y=grad_y/A
18 uni_z=1./A
19 a2=255*(dx*uni_x+dy*uni_y+dz*uni_z)       #光源归一化
20 a2=a2.clip(0,255)
21 im2=Image.fromarray(a2.astype(‘uint8‘))      #重构图像
22 im2.save(‘pic_handdraw.jpg‘)
      
上一篇:在windows环境利用celery实现简单的任务队列
下一篇:SpringIOC
文章标题:Python 之 Numpy库以及Matplotlib库的学习
文章链接:http://soscw.com/index.php/essay/48055.html