博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Matplotlib绘图工具
阅读量:3964 次
发布时间:2019-05-24

本文共 12223 字,大约阅读时间需要 40 分钟。

基础使用

色卡网站:

# 导包import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as np
x = np.linspace(0, 10, 100)x
array([ 0.        ,  0.1010101 ,  0.2020202 ,  0.3030303 ,  0.4040404 ,        0.50505051,  0.60606061,  0.70707071,  0.80808081,  0.90909091,        1.01010101,  1.11111111,  1.21212121,  1.31313131,  1.41414141,        1.51515152,  1.61616162,  1.71717172,  1.81818182,  1.91919192,        2.02020202,  2.12121212,  2.22222222,  2.32323232,  2.42424242,        2.52525253,  2.62626263,  2.72727273,  2.82828283,  2.92929293,        3.03030303,  3.13131313,  3.23232323,  3.33333333,  3.43434343,        3.53535354,  3.63636364,  3.73737374,  3.83838384,  3.93939394,        4.04040404,  4.14141414,  4.24242424,  4.34343434,  4.44444444,        4.54545455,  4.64646465,  4.74747475,  4.84848485,  4.94949495,        5.05050505,  5.15151515,  5.25252525,  5.35353535,  5.45454545,        5.55555556,  5.65656566,  5.75757576,  5.85858586,  5.95959596,        6.06060606,  6.16161616,  6.26262626,  6.36363636,  6.46464646,        6.56565657,  6.66666667,  6.76767677,  6.86868687,  6.96969697,        7.07070707,  7.17171717,  7.27272727,  7.37373737,  7.47474747,        7.57575758,  7.67676768,  7.77777778,  7.87878788,  7.97979798,        8.08080808,  8.18181818,  8.28282828,  8.38383838,  8.48484848,        8.58585859,  8.68686869,  8.78787879,  8.88888889,  8.98989899,        9.09090909,  9.19191919,  9.29292929,  9.39393939,  9.49494949,        9.5959596 ,  9.6969697 ,  9.7979798 ,  9.8989899 , 10.        ])
# 定义sin函数y = np.sin(x)
y
array([ 0.        ,  0.10083842,  0.20064886,  0.2984138 ,  0.39313661,        0.48385164,  0.56963411,  0.64960951,  0.72296256,  0.78894546,        0.84688556,  0.8961922 ,  0.93636273,  0.96698762,  0.98775469,        0.99845223,  0.99897117,  0.98930624,  0.96955595,  0.93992165,        0.90070545,  0.85230712,  0.79522006,  0.73002623,  0.65739025,        0.57805259,  0.49282204,  0.40256749,  0.30820902,  0.21070855,        0.11106004,  0.01027934, -0.09060615, -0.19056796, -0.28858706,       -0.38366419, -0.47483011, -0.56115544, -0.64176014, -0.7158225 ,       -0.7825875 , -0.84137452, -0.89158426, -0.93270486, -0.96431712,       -0.98609877, -0.99782778, -0.99938456, -0.99075324, -0.97202182,       -0.94338126, -0.90512352, -0.85763861, -0.80141062, -0.73701276,       -0.66510151, -0.58640998, -0.50174037, -0.41195583, -0.31797166,       -0.22074597, -0.12126992, -0.0205576 ,  0.0803643 ,  0.18046693,        0.27872982,  0.37415123,  0.46575841,  0.55261747,  0.63384295,        0.7086068 ,  0.77614685,  0.83577457,  0.8868821 ,  0.92894843,        0.96154471,  0.98433866,  0.99709789,  0.99969234,  0.99209556,        0.97438499,  0.94674118,  0.90944594,  0.86287948,  0.8075165 ,        0.74392141,  0.6727425 ,  0.59470541,  0.51060568,  0.42130064,        0.32770071,  0.23076008,  0.13146699,  0.03083368, -0.07011396,       -0.17034683, -0.26884313, -0.36459873, -0.45663749, -0.54402111])
# 绘制图形,x横轴,y纵轴plt.plot(x, y)# 可以指定坐标轴范围# plt.xlim(-3, 15)# 可以同时指定x,y坐标轴范围,是一个列表,前两个是x轴,后两个是y轴plt.axis([-1, 11, -2, 2])plt.show()

在这里插入图片描述

# 绘制多条曲线,可以定制颜色和样式cosy = np.cos(x)siny = y.copy()plt.plot(x, siny, color="green")plt.plot(x, cosy, color="red", linestyle="--")plt.show()

在这里插入图片描述

cosy = np.cos(x)siny = y.copy()plt.plot(x, siny, color="green", label="sin(x)")plt.plot(x, cosy, color="red", label="cos(x)")# 指定横纵轴标签含义plt.xlabel("x axis")plt.ylabel("y value")# 添加前面的图例plt.legend()# 添加标题plt.title("welcome to the Machine Learning World!")plt.show()

在这里插入图片描述

绘制散点图

# 同理可以绘制多条线,而且可以更改颜色等等# 一般散点图的横纵轴都是特征# 我们选择正态随机数得到二维的正态分布,四周稀疏,中间密集normx = np.random.normal(0, 1, 1000)normy = np.random.normal(0, 1, 1000)plt.scatter(normx, normy, alpha=0.7) # alpha调节透明度plt.show()

在这里插入图片描述

从数据库中加载数据并处理

from sklearn import datasets
# 将鸢尾花的数据导入内存iris = datasets.load_iris()
iris.keys()# 包含了鸢尾花的数据
dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
print(iris.DESCR)
.. _iris_dataset:Iris plants dataset--------------------**Data Set Characteristics:**    :Number of Instances: 150 (50 in each of three classes)    :Number of Attributes: 4 numeric, predictive attributes and the class    :Attribute Information:        - sepal length in cm        - sepal width in cm        - petal length in cm        - petal width in cm        - class:                - Iris-Setosa                - Iris-Versicolour                - Iris-Virginica                    :Summary Statistics:    ============== ==== ==== ======= ===== ====================                    Min  Max   Mean    SD   Class Correlation    ============== ==== ==== ======= ===== ====================    sepal length:   4.3  7.9   5.84   0.83    0.7826    sepal width:    2.0  4.4   3.05   0.43   -0.4194    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)    ============== ==== ==== ======= ===== ====================    :Missing Attribute Values: None    :Class Distribution: 33.3% for each of 3 classes.    :Creator: R.A. Fisher    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)    :Date: July, 1988The famous Iris database, first used by Sir R.A. Fisher. The dataset is takenfrom Fisher's paper. Note that it's the same as in R, but not as in the UCIMachine Learning Repository, which has two wrong data points.This is perhaps the best known database to be found in thepattern recognition literature.  Fisher's paper is a classic in the field andis referenced frequently to this day.  (See Duda & Hart, for example.)  Thedata set contains 3 classes of 50 instances each, where each class refers to atype of iris plant.  One class is linearly separable from the other 2; thelatter are NOT linearly separable from each other... topic:: References   - Fisher, R.A. "The use of multiple measurements in taxonomic problems"     Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to     Mathematical Statistics" (John Wiley, NY, 1950).   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.   - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System     Structure and Classification Rule for Recognition in Partially Exposed     Environments".  IEEE Transactions on Pattern Analysis and Machine     Intelligence, Vol. PAMI-2, No. 1, 67-71.   - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule".  IEEE Transactions     on Information Theory, May 1972, 431-433.   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al"s AUTOCLASS II     conceptual clustering system finds 3 classes in the data.   - Many, many more ...
# 获取到iris的数据矩阵iris.data
array([[5.1, 3.5, 1.4, 0.2],       [4.9, 3. , 1.4, 0.2],       [4.7, 3.2, 1.3, 0.2],       [4.6, 3.1, 1.5, 0.2],       [5. , 3.6, 1.4, 0.2],       [5.4, 3.9, 1.7, 0.4],       [4.6, 3.4, 1.4, 0.3],       [5. , 3.4, 1.5, 0.2],       [4.4, 2.9, 1.4, 0.2],       [4.9, 3.1, 1.5, 0.1],       [5.4, 3.7, 1.5, 0.2],       [4.8, 3.4, 1.6, 0.2],       [4.8, 3. , 1.4, 0.1],       [4.3, 3. , 1.1, 0.1],       [5.8, 4. , 1.2, 0.2],       [5.7, 4.4, 1.5, 0.4],       [5.4, 3.9, 1.3, 0.4],       [5.1, 3.5, 1.4, 0.3],       [5.7, 3.8, 1.7, 0.3],       [5.1, 3.8, 1.5, 0.3],       [5.4, 3.4, 1.7, 0.2],       [5.1, 3.7, 1.5, 0.4],       [4.6, 3.6, 1. , 0.2],       [5.1, 3.3, 1.7, 0.5],       [4.8, 3.4, 1.9, 0.2],       [5. , 3. , 1.6, 0.2],       [5. , 3.4, 1.6, 0.4],       [5.2, 3.5, 1.5, 0.2],       [5.2, 3.4, 1.4, 0.2],       [4.7, 3.2, 1.6, 0.2],       [4.8, 3.1, 1.6, 0.2],       [5.4, 3.4, 1.5, 0.4],       [5.2, 4.1, 1.5, 0.1],       [5.5, 4.2, 1.4, 0.2],       [4.9, 3.1, 1.5, 0.2],       [5. , 3.2, 1.2, 0.2],       [5.5, 3.5, 1.3, 0.2],       [4.9, 3.6, 1.4, 0.1],       [4.4, 3. , 1.3, 0.2],       [5.1, 3.4, 1.5, 0.2],       [5. , 3.5, 1.3, 0.3],       [4.5, 2.3, 1.3, 0.3],       [4.4, 3.2, 1.3, 0.2],       [5. , 3.5, 1.6, 0.6],       [5.1, 3.8, 1.9, 0.4],       [4.8, 3. , 1.4, 0.3],       [5.1, 3.8, 1.6, 0.2],       [4.6, 3.2, 1.4, 0.2],       [5.3, 3.7, 1.5, 0.2],       [5. , 3.3, 1.4, 0.2],       [7. , 3.2, 4.7, 1.4],       [6.4, 3.2, 4.5, 1.5],       [6.9, 3.1, 4.9, 1.5],       [5.5, 2.3, 4. , 1.3],       [6.5, 2.8, 4.6, 1.5],       [5.7, 2.8, 4.5, 1.3],       [6.3, 3.3, 4.7, 1.6],       [4.9, 2.4, 3.3, 1. ],       [6.6, 2.9, 4.6, 1.3],       [5.2, 2.7, 3.9, 1.4],       [5. , 2. , 3.5, 1. ],       [5.9, 3. , 4.2, 1.5],       [6. , 2.2, 4. , 1. ],       [6.1, 2.9, 4.7, 1.4],       [5.6, 2.9, 3.6, 1.3],       [6.7, 3.1, 4.4, 1.4],       [5.6, 3. , 4.5, 1.5],       [5.8, 2.7, 4.1, 1. ],       [6.2, 2.2, 4.5, 1.5],       [5.6, 2.5, 3.9, 1.1],       [5.9, 3.2, 4.8, 1.8],       [6.1, 2.8, 4. , 1.3],       [6.3, 2.5, 4.9, 1.5],       [6.1, 2.8, 4.7, 1.2],       [6.4, 2.9, 4.3, 1.3],       [6.6, 3. , 4.4, 1.4],       [6.8, 2.8, 4.8, 1.4],       [6.7, 3. , 5. , 1.7],       [6. , 2.9, 4.5, 1.5],       [5.7, 2.6, 3.5, 1. ],       [5.5, 2.4, 3.8, 1.1],       [5.5, 2.4, 3.7, 1. ],       [5.8, 2.7, 3.9, 1.2],       [6. , 2.7, 5.1, 1.6],       [5.4, 3. , 4.5, 1.5],       [6. , 3.4, 4.5, 1.6],       [6.7, 3.1, 4.7, 1.5],       [6.3, 2.3, 4.4, 1.3],       [5.6, 3. , 4.1, 1.3],       [5.5, 2.5, 4. , 1.3],       [5.5, 2.6, 4.4, 1.2],       [6.1, 3. , 4.6, 1.4],       [5.8, 2.6, 4. , 1.2],       [5. , 2.3, 3.3, 1. ],       [5.6, 2.7, 4.2, 1.3],       [5.7, 3. , 4.2, 1.2],       [5.7, 2.9, 4.2, 1.3],       [6.2, 2.9, 4.3, 1.3],       [5.1, 2.5, 3. , 1.1],       [5.7, 2.8, 4.1, 1.3],       [6.3, 3.3, 6. , 2.5],       [5.8, 2.7, 5.1, 1.9],       [7.1, 3. , 5.9, 2.1],       [6.3, 2.9, 5.6, 1.8],       [6.5, 3. , 5.8, 2.2],       [7.6, 3. , 6.6, 2.1],       [4.9, 2.5, 4.5, 1.7],       [7.3, 2.9, 6.3, 1.8],       [6.7, 2.5, 5.8, 1.8],       [7.2, 3.6, 6.1, 2.5],       [6.5, 3.2, 5.1, 2. ],       [6.4, 2.7, 5.3, 1.9],       [6.8, 3. , 5.5, 2.1],       [5.7, 2.5, 5. , 2. ],       [5.8, 2.8, 5.1, 2.4],       [6.4, 3.2, 5.3, 2.3],       [6.5, 3. , 5.5, 1.8],       [7.7, 3.8, 6.7, 2.2],       [7.7, 2.6, 6.9, 2.3],       [6. , 2.2, 5. , 1.5],       [6.9, 3.2, 5.7, 2.3],       [5.6, 2.8, 4.9, 2. ],       [7.7, 2.8, 6.7, 2. ],       [6.3, 2.7, 4.9, 1.8],       [6.7, 3.3, 5.7, 2.1],       [7.2, 3.2, 6. , 1.8],       [6.2, 2.8, 4.8, 1.8],       [6.1, 3. , 4.9, 1.8],       [6.4, 2.8, 5.6, 2.1],       [7.2, 3. , 5.8, 1.6],       [7.4, 2.8, 6.1, 1.9],       [7.9, 3.8, 6.4, 2. ],       [6.4, 2.8, 5.6, 2.2],       [6.3, 2.8, 5.1, 1.5],       [6.1, 2.6, 5.6, 1.4],       [7.7, 3. , 6.1, 2.3],       [6.3, 3.4, 5.6, 2.4],       [6.4, 3.1, 5.5, 1.8],       [6. , 3. , 4.8, 1.8],       [6.9, 3.1, 5.4, 2.1],       [6.7, 3.1, 5.6, 2.4],       [6.9, 3.1, 5.1, 2.3],       [5.8, 2.7, 5.1, 1.9],       [6.8, 3.2, 5.9, 2.3],       [6.7, 3.3, 5.7, 2.5],       [6.7, 3. , 5.2, 2.3],       [6.3, 2.5, 5. , 1.9],       [6.5, 3. , 5.2, 2. ],       [6.2, 3.4, 5.4, 2.3],       [5.9, 3. , 5.1, 1.8]])
# 鸢尾花的元组,150行,4列iris.data.shape
(150, 4)
# 具体的属性是萼片长度、萼片宽度、花瓣长度、花瓣宽度iris.feature_names
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
# 鸢尾花的类型描述iris.target_names
array(['setosa', 'versicolor', 'virginica'], dtype='
# 鸢尾花类型的向量iris.target.shape
(150,)
# 鸢尾花类型的具体值,0,1,2分别代表三种类型iris.target
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
# 可视化数据,选取前两列(萼片数据,长和宽)# 同时我们需要分类别进行展示:0,1,2对应不同的targetX = iris.data[:, :2]y = iris.targetplt.scatter(X[y==0, 0], X[y==0, 1], color="red", marker="o")plt.scatter(X[y==1, 0], X[y==1, 1], color="green", marker="+")plt.scatter(X[y==2, 0], X[y==2, 1], color="blue", marker="x")plt.show()

在这里插入图片描述

# 选取后面的花瓣部分的数据X = iris.data[:, 2:]y = iris.targetplt.scatter(X[y==0, 0], X[y==0, 1], color="red", marker="o")plt.scatter(X[y==1, 0], X[y==1, 1], color="green", marker="+")plt.scatter(X[y==2, 0], X[y==2, 1], color="blue", marker="x")plt.show()

在这里插入图片描述

转载地址:http://gvgzi.baihongyu.com/

你可能感兴趣的文章
Spring 配置数据库动态密码
查看>>
Spring 申明式事务之注解
查看>>
Spring 申明式事务之XML模式
查看>>
Spring 程序式事务管理
查看>>
Spring JdbcTemplate
查看>>
Spring NamedParameterJdbcTemplate
查看>>
JMS + ActiveMQ 精萃
查看>>
ActiveMQ 下载和安装
查看>>
JMS 点对点消息
查看>>
JMS 发布/订阅消息 -- 同步
查看>>
正则表达式精萃
查看>>
正则表达式简介
查看>>
匹配任何字符:点号(.)
查看>>
匹配行的起始(^)和结束($)
查看>>
Java SE 精萃
查看>>
Java 白皮书
查看>>
在Windows XP中安装Java SE
查看>>
使用记事本(Notepad)开发一个 hello world 程序
查看>>
Java语言规范
查看>>
字符组
查看>>