python绘图简单教程(一)——基本元素
一、理解面向对象
因为我们不需要自己设计一个代码库,只要知道面向对象的调用就可以了。
1)什么是类?
一类东西的抽象名词概括
比如汽车car,概括了许多具体的各个牌子的汽车实物
2)什么是对象?
就是从类里面举出来的一个实际的例子
比如汽车car这个类的对象可以是mycar(一般来说明明都是自由的)
3)什么是类的属性?
就是同一类的东西都共有的性质,那么这一个类的所有对象都会拥有这个类别的属性,属性是静态的。
比如所有汽车car都会有车门door、车窗window就可以作为属性,那么类car的对象mycar,也会有这两个属性,表示为mycar.door、mycar.window,指向具体的mycar这个对象的车门和车窗
4)什么是类的方法?
同一类的东西都能够完成的一个过程,同样的这一个类的所有对象都能够实现这个方法,方法是动态的。
同样比如类car用两个方法:开车start()、停车stop(),那么car的对象mycar可以实现这两个方法,表示为mycar.start()、mycar.stop(),模拟实体对象的动作。
参数
许多方法的调用需要传入参数,就是括号和里面的值,这个时候将方法理解成一个函数就可以了,给不同的输入得到不同的输出。
静态方法的调用
有一些方法不需要建立对象就可以完成,调用的时候直接使用类名
比如类car有静态方法转弯turn(),调用的时候直接car.turn()
二、资源说明
python的所有库都有自己的指引tutorials和例子examples,但是都是全英的,一般网上的博客都是从中找到答案表述成中文这样,小问题解决可以百度,系统的学的时候看着手册比较全面。
1 Matplotlib
Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
开源的一个用于平面绘图的大型的代码库,里面是别人设计好的类、里面有便于使用的属性和方法,我们使用的时候直接建立自己的对象然后调用对应的方法就行
2 pyplot
For simple plotting the
pyplot
module provides a MATLAB-like interface, particularly when combined with IPython. For the power user, you have full control of line styles, font properties, axes properties, etc, via an object oriented interface or via a set of functions familiar to MATLAB users.
Matplotlib的中的一个模块,用于简单的绘图。
三、导入模块
1 plt
import matplotlib.pyplot as plt
#含义是将上面的这个库导入,并且重命名为plt,之后每次调用写plt即可
如果没有这个库,可以在Anaconda里面下载。
Anaconda
专门用来管理python的库的一个可视化界面
spyder
打代码的集成平台,没有它就要用黑框框
2 NumPy
NumPy 是一个运行速度非常快的数学库,主要用于数组计算
import numpy as np
#导入库,缩写为np
尝试使用方法array()
x = np.array([[1,1,1],[2,2,2]])
#2*3/的矩阵x就是一个对象了
尝试查看shape属性
print(x.shape)#返回(行数,列数)
print(x.shape[0])#返回行数
print(x.shape[1])#返回列数
3 Pandas
import pandas as pd
Pandas是针对数据处理和分析的,其中有大量数据读写、数据清洗等等功能可以调用,画图最常用到的一个是数据框类
DataFrame
DataFrame理解成pandas提供的一种存放数据的表的类型就可以,或者是矩阵也可以。
尝试使用
data=pd.DataFrame([[1,2,3,4],[2,3,4,5],
[3,4,5,6],[4,5,6,7]],
index=list('ABCD'),columns=list('ABCD'))
#index是标签,行名;columns是列名
四、基本元素
英文代号
含义
Title
标题
Legend
图例说明
Grid
网格
Line(Line plot)
线条/点
X axis label
X轴标签
Y axis label
Y轴标签
Minor tick label
小刻度标签
Major tick label
大刻度标签
Minor tick
小刻度
Major tick
大刻度
Markers(Scatter plot)
标记/点样式
Spines
脊柱??
Axes
坐标轴
Figure
图像
五、最简单的图
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
#默认是y值
plt.ylabel('some numbers')
plt.show()
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
#前一个是横坐标集合,后一个是纵坐标集合
【练习题】
通过输入
y=x^2
的五个点的坐标到
plot()
中画出大致形状,并且设置
title
、
xlable
、
ylable
,提交生成的图