Matplotlib基础知识

一、Matplotlib基础知识

  • Matplotlib中的基本图表包括的元素

    • x轴和y轴 axis

      水平和垂直的轴线
    • x轴和y轴刻度 tick

      刻度标示坐标轴的分隔,包括最小刻度和最大刻度
    • x轴和y轴刻度标签 tick label

      表示特定坐标轴的值
    • 绘图区域(坐标系) axes

      实际绘图的区域
    • 坐标系标题 title

      实际绘图的区域
    • 轴标签 xlabel ylabel

      实际绘图的区域
#  使用包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame # matplotlib 中 使用中文
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

包含单条曲线的图

  • 注意:y,x轴的值必须为数字
x=[1,2,3,4,5]
y=[2,4,6,8,10]
# 显示 图片
plt.plot(x,y) # 绘制抛物线
x = np.linspace(-np.pi,np.pi,num=10)
y = x**2
plt.plot(x,y) # 绘制正弦曲线图
x = x
# 正弦
y = np.sin(x)
plt.plot(x,y)

包含多个曲线的图

  • 连续调用多次plot函数
plt.plot(x,y)
plt.plot(x-2,y-2)
plt.plot(x,y,x+2,y+3)

多个曲线图绘制在一个table区域中:对象形式创建表图

  • a=plt.subplot(row,col,loc) 创建曲线图
  • a.plot(x,y) 绘制曲线图
ax1 = plt.subplot(2,2,1)
ax1.plot(x,y) ax2 = plt.subplot(2,2,2)
ax2.plot(x,y) ax3 = plt.subplot(2,2,3)
ax3.plot(x,y) ax4 = plt.subplot(2,2,4)
ax4.plot(x,y)
  • 设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍
    plt.figure(figsize=(8,8))
    plt.plot(x,y)

坐标轴标签

  • s 标签内容

  • color 标签颜色

  • fontsize 字体大小

  • rotation 旋转角度

  • plt的xlabel方法和ylabel方法 title方法

    plt.plot(x,y)
    # x 轴
    plt.xlabel('xxx')
    # y 轴
    plt.ylabel('yyy')
    # 图片标题
    plt.title('ttt')

图例

legend方法

两种传参方法:

  • 分别在plot函数中增加label参数,再调用plt.legend()方法显示
  • 直接在legend方法中传入字符串列表!
plt.plot(x,y,label='temp')
plt.plot(x+4,y-3,label='dist')
plt.legend()

legend的参数

​ - loc参数

  • loc参数用于设置图例标签的位置,一般在legend函数内
  • matplotlib已经预定义好几种数字表示的位置
plt.plot(x,y,label='temp')
plt.plot(x+4,y-3,label='dist')
plt.legend(loc=0,ncol=2)

​ - ncol参数

  • ncol控制图例中有几列,在legend中设置ncol

二. 保存图片

  • 使用figure对象的savefig函数来保存图片

    fig = plt.figure()---必须放置在绘图操作之前

    figure.savefig的参数选项

    • filename

      含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……)
    • dpi

      图像分辨率(每英寸点数),默认为100
    • facecolor ,打开保存图片查看 图像的背景色,默认为“w”(白色)
    fig = plt.figure()
    
    plt.plot(x,y,label='temp')
    plt.plot(x+4,y-3,label='dist')
    plt.legend(loc=0,ncol=2)
    # dpi 像素
    fig.savefig('./fig.jpg',dpi=200)

    设置plot的风格和样式

    plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:

    plt.plot(X, Y, 'format', ...)

颜色

参数color或c

plt.plot(x,y,c='yellow',alpha=0.5)
颜色值的方式
  • 别名

    • color='r'
  • 合法的HTML颜色名

    • color = 'red'
颜色 别名 HTML颜色名 颜色 别名 HTML颜色名
蓝色 b blue 绿色 g green
红色 r red 黄色 y yellow
青色 c cyan 黑色 k black
洋红色 m magenta 白色 w white
  • HTML十六进制字符串

    • color = '#eeefff'
  • 归一化到[0, 1]的RGB元组

    • color = (0.3, 0.3, 0.4)
透明度

alpha参数

线型

参数linestyle或ls

线条风格 描述 线条风格 描述
'-' 实线 ':' 虚线
'--' 破折线 'steps' 阶梯线
'-.' 点划线 'None' / ',' 什么都不画
plt.plot(x,y,ls='steps',lw=3)
[<matplotlib.lines.Line2D at 0x15ddae8ea90>]
线宽

linewidth或lw参数

点型

  • marker 设置点形
  • markersize 设置点形大小
标记 描述 标记 描述
's' 正方形 'p' 五边形
'h' 六边形1 'H' 六边形2
'8' 八边形
标记 描述 标记 描述
'.' 'x' X
'*' 星号 '+' 加号
',' 像素
标记 描述 标记 描述
'o' 圆圈 'D' 菱形
'd' 小菱形 '','None',' ',None
标记 描述 标记 描述
'1' 一角朝下的三脚架 '3' 一角朝左的三脚架
'2' 一角朝上的三脚架 '4' 一角朝右的三脚架
plt.plot(x,y,marker='d')
# 绘制线      plt.plot(x1,y1,x2,y2)
# 网格线 plt.grid(True) axes.grid(color,ls,lw,alpha)
# 获取坐标系 plt.subplot(n1,n2,n3)
# 坐标轴标签 plt.xlabel() plt.ylabel()
# 坐标系标题 plt.title()
# 图例 plt.legend([names],ncol=2,loc=1) plt.plot(label='name')
# 线风格 -- -. : None step
# 图片保存 figure.savefig()
# 点的设置 marker markersize markerfacecolor markeredgecolor\width
# 坐标轴刻度 plt.xticks(刻度列表,刻度标签列表) plt.yticks()
# axes.set_xticks(刻度列表) axes.set_xticklabels(刻度标签列表)

三. 2D图形

直方图

  • 是一个特殊的柱状图,又叫做密度图。

【直方图的参数只有一个x!!!不像条形图需要传入x,y】

plt.hist()的参数

  • bins

    直方图的柱数,可选项,默认为10
  • color

    指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
  • orientation

    通过设置orientation为horizontal创建水平直方图。默认值为vertical
data = [1,2,3,3,4,2,5]
plt.hist(data)
  • 返回值 :

    1: 直方图向量,是否归一化由参数normed设定

    2: 返回各个bin的区间范围

    3: 返回每个bin里面包含的数据,是一个list

条形图:plt.bar()

  • 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度

    -【条形图有两个参数x,y】

    • width 纵向设置条形宽度
    • height 横向设置条形高度

    bar()、barh()

x = [1,2,3]
y = [2,3,4]
plt.barh(x,y)

饼图

【饼图也只有一个参数x】

pie()

饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小

  • 饼图阴影、分裂等属性设置

    #labels参数设置每一块的标签;

    #labeldistance参数设置标签距离圆心的距离(比例值)

    #autopct参数设置比例值小数保留位(%.3f%%);

    #pctdistance参数设置比例值文字距离圆心的距离

    #explode参数设置每一块顶点距圆心的长度(比例值,列表);

    #colors参数设置每一块的颜色(列表);

    #shadow参数为布尔值,设置是否绘制阴影

    #startangle参数设置饼图起始角度

    a = [0.3,0.2]
    plt.pie(a) arr=[11,22,31,15]
    plt.pie(arr,labels=['a','b','c','d']) #labeldistance参数设置标签距离圆心的距离(比例值)
    arr=[11,22,31,15]
    plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3) #autopct参数设置比例值小数保留位(%.3f%%);
    arr=[11,22,31,15]
    plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,autopct='%.6f%%') ##explode参数设置每一块顶点距圆心的长度(比例值,列表);
    arr=[11,22,31,15]
    plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,shadow=True,explode=[0.2,0.3,0.2,0.4])

散点图:因变量随自变量而变化的大致趋势

【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】

scatter()

x = [1,2,3,4,5]
y = [2,4,6,8,10] plt.scatter(x,y) # plt.scatter(x,y,marker='d',c="rbgy") 设置不同的散点颜色
temp = np.random.randint(10,40,size=(30,))
dist = np.random.randint(70,100,size=(30,))
# 显示颜色 rbyg = red, blue yellow green 随机
plt.scatter(temp,dist,c='rbyg')

Matplotlib 绘图 用法的更多相关文章

  1. matplotlib绘图基本用法-转自(http://blog.csdn.net/mao19931004/article/details/51915016)

    本文转载自http://blog.csdn.net/mao19931004/article/details/51915016 <!DOCTYPE html PUBLIC "-//W3C ...

  2. matplotlib 绘图

    http://blog.csdn.net/jkhere/article/details/9324823 都打一遍 5 matplotlib-绘制精美的图表 matplotlib 是python最著名的 ...

  3. python 中matplotlib 绘图

    python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...

  4. python实战学习之matplotlib绘图续

    学习完matplotlib绘图可以设置的属性,还需要学习一下除了折线图以外其他类型的图如直方图,条形图,散点图等,matplotlib还支持更多的图,具体细节可以参考官方文档:https://matp ...

  5. matplotlib绘图的基本操作

    转自:Laumians博客园 更简明易懂看Matplotlib Python 画图教程 (莫烦Python)_演讲•公开课_科技_bilibili_哔哩哔哩 https://www.bilibili. ...

  6. python中利用matplotlib绘图可视化知识归纳

    python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...

  7. python实战学习之matplotlib绘图

    matplotlib 是最流行的Python底层绘图库,主要做数据可视化图表 可以将数据可视化,能够更直观的呈现数据 matplotlib绘图基本要点 首先实现一个简单的绘图 # 导入pyplot f ...

  8. 【原】在Matplotlib绘图中添加Latex风格公式

    Matplotlib绘图的过程中,可以为各个轴的Label,图像的Title.Legend等元素添加Latex风格的公式. 只需要在Latex公式的文本前后各增加一个$符号,Matplotlib就可以 ...

  9. Matplotlib绘图双纵坐标轴设置及控制设置时间格式

    双y轴坐标轴图 今天利用matplotlib绘图,想要完成一个双坐标格式的图. fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1 ...

随机推荐

  1. ProtoBuf使用指南(C++)

    ProtoBuf使用指南(C++) Created: Mar 12, 2019 6:47 PM Last Edited Time: Mar 22, 2019 1:51 PM 1.安装部署 去官网(gi ...

  2. java——初识

    java是现在最火的高级编程语言之一,功能强,应用广. java可以做什么? 1. 开发桌面应用程序 2. 开发面向Internet的应用程序 开发java程序的基本步骤: 1. 编写源程序:mypr ...

  3. MSQL基本增删改语句汇总练习

    删除约束注意: 网上说是 ALTER TABLE 表名 DROP CONSTRAINT 约束名; 这里的CONSTRAINT 是指primary key,foreign key,unique,等实际的 ...

  4. #WEB安全基础:HTML/CSS | 0x0 我的第一个网页

    #WEB安全基础:HTML/CSS系列,本系列采用第二人称以免你不知道我在对着你说话,以朋友的视角和你交流 HTML的中文名叫做超文本标记语言,CSS叫做层叠样式表 用HTML设计你的第一个网页,你需 ...

  5. CentOS 7.0 下 Python 2.7 升级到 Python 3.5

    前段因为时间工作需要,要把 Centos 7.0 默认安装的 Python 2.7 升级到 Python 3.5. 具体操作如下: # 安装 gcc gcc-c++ 等编译工具软件 yum insta ...

  6. js 取数组中某个对象的集合

    var arr = [ {a:1,b:2,c:3}, {a:4,b:5,c:6}, {a:7,b:8,c:9} ]; arr1=[]; arr.forEach(function(v){ arr1.pu ...

  7. echarts功能配置实例----柱/折线、饼图

    ---恢复内容开始--- echarts中的柱状图和折线图的参数配置可以共用,一般只需要修改图表类型这一个参数即可. 一.echarts最简单的实例 1.折线图/柱状图 <html> &l ...

  8. Mysql sql 功能分类

    分类 DDL:数据定义语言,用于定义数据库对象,比如创建表,列,库等 DML:数据操作语言,用于添加.删除.修改数据 DQL:数据查询语言,用于查询(结果集是虚拟表,放在内存中) DCL:数据控制语言 ...

  9. WebView内存泄露的解决方案

    一.简介: 做Android开发的相信都对webview不会陌生,而且也对系统自带的webview本身存在的问题也是怨念很久了,一方面是本身对js的支持不是很好另外一方面就是经常被人诟病的内存泄露了, ...

  10. java 大文件分割与组装

    不多说,直接上代码 1 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; im ...