科学计算可视化

通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

Matplotlib基础知识

1.Matplotlib中的基本图表包括的元素

x轴和y轴

水平和垂直的轴线

x轴和y轴刻度

刻度标示坐标轴的分隔,包括最小刻度和最大刻度

x轴和y轴刻度标签

表示特定坐标轴的值

绘图区域

实际绘图的区域

2.hold属性

hold属性默认为True,允许在一幅图中绘制多个曲线;将hold属性修改为False,每一个plot都会覆盖前面的plot。

但是目前不推荐去动hold这个属性,这种做法(会有警告)。因此使用默认设置即可。

3.网格线

grid方法

使用grid方法为图添加网格线

设置grid参数(参数与plot函数相同)

.lw代表linewidth,线的粗细

.alpha表示线的明暗程度

4.axis方法

如果axis方法没有任何参数,则返回当前坐标轴的上下限

5.xlim方法和ylim方法

除了plt.axis方法,还可以通过xlim,ylim方法设置坐标轴范围

6.legend方法

两种传参方法:

【推荐使用】在plot函数中增加label参数

在legend方法中传入字符串列表

配置matplotlib参数

永久配置

matplotlib配置信息是从配置文件读取的。在配置文件中可以为matplotlib的几乎所有属性指定永久有效的默认值

安装级配置文件(Per installation configuration file)

二、

一、Numpy库

Numpy是什么

numpy很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。

数组常用函数

1.where() 
按条件返回数组的索引值 
2.take(a,index) 
从数组a中按照索引index取值 
3.linspace(a,b,N) 
返回一个在(a,b)范围内均匀分布的数组,元素个数为N个 
4.a.fill() 
将数组的所有元素以指定的值填充 
5.diff(a) 
返回数组a相邻元素的差值构成的数组 
6.sign(a) 
返回数组a的每个元素的正负符号 
7.piecewise(a,[condlist],[funclist]) 
数组a根据布尔型条件condlist返回对应元素结果 
8.a.argmax(),a.argmin() 
返回a最大、最小元素的索引

改变数组维度

a.ravel(),a.flatten(): 
将数组a展平成一维数组
a.shape=(m,n),a.reshape(m,n): 
将数组a转换成m*n维数组 
3.a.transpose,a.T 
转置数组a

数组组合

1.hstack((a,b)),concatenate((a,b),axis=1) 
将数组a,b沿水平方向组合 
2.vstack((a,b)),concatenate((a,b),axis=0) 
将数组a,b沿竖直方向组合 
3.row_stack((a,b)) 
将数组a,b按行方向组合 
4.column_stack((a,b)) 
将数组a,b按列方向组合

数组分割

1.split(a,n,axis=0),vsplit(a,n) 
将数组a沿垂直方向分割成n个数组 
2.split(a,n,axis=1),hsplit(a,n) 
将数组a沿水平方向分割成n个数组

数组修剪和压缩

1.a.clip(m,n) 
设置数组a的范围为(m,n),数组中大于n的元素设定为n,小于m的元素设定为m 
2.a.compress() 
返回根据给定条件筛选后的数组

数组属性

1.a.dtype 
数组a的数据类型 
2.a.shape 
数组a的维度 
3.a.ndim 
数组a的维数 
4.a.size 
数组a所含元素的总个数 
5.a.itemsize 
数组a的元素在内存中所占的字节数 
6.a.nbytes 
整个数组a所占的内存空间 
7.a.astype(int) 
转换a数组的类型为int型

数组计算

1.average(a,weights=v) 
对数组a以权重v进行加权平均 
2.mean(a),max(a),min(a),middle(a),var(a),std(a) 
数组a的均值、最大值、最小值、中位数、方差、标准差 
3.a.prod() 
数组a的所有元素的乘积 
4.a.cumprod() 
数组a的元素的累积乘积 
5.cov(a,b),corrcoef(a,b) 
数组a和b的协方差、相关系数 
6.a.diagonal() 
查看矩阵a对角线上的元素 
7.a.trace()

 计算矩阵a的迹,即对角线元素之和

三、应用

绘制雷达图

1、首先先下载pandas

2、然后插入代码并运行

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['KaiTi']
labels = np.array([u'第一周', u'第二周', u'第三周',u'第四周',u'第五周',u'第六周']) # 标签
dataLenth = 6
data_radar = np.array([100,90.9,100,80,100,90])
angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
data_radar = np.concatenate((data_radar, [data_radar[0]]))
angles = np.concatenate((angles, [angles[0]]))
plt.polar(angles, data_radar, 'bo-', linewidth=1)
plt.thetagrids(angles * 180/np.pi, labels)
plt.fill(angles, data_radar, facecolor='r', alpha=0.25)
plt.ylim(0, 100)
plt.title(u'鄞思丹的成绩表')
plt.show()

posted @ 2019-04-23 23:32  ysd将暮未暮  阅读(176)  评论(0编辑  收藏  举报