python matplotlib库

2024-09-04 18:48
文章标签 python matplotlib

本文主要是介绍python matplotlib库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

        • 简介
        • pyplot能绘制哪些图
        • 绘制二维图plot
        • 绘制三维图
        • 绘制饼图
        • 绘制直方图
        • 绘制极坐标图
        • 绘制散点图
        • 显示中文
        • 保存图像
        • 坐标轴尺度
        • 文本显示
        • 显示背景网格
        • 绘制子绘图区域

简介

matplotlib是一个python画图的库。具体参考http://matplotlib.org/api

pyplot能绘制哪些图

pyplot有两种绘图的方法,即面向对象绘图和面向过程绘图。面向对象一般先用plt.subplot()获得对象,然后调用对象的方法。而面向过程绘图直接调用plt的方法来绘图。以绘制散点图为例:

#面向对象
ax = plt.subplot(111)
ax.scatter([1,2,3],[2,3,4])
plt.show()
#面向过程
plt.scatter([1,2,3],[2,3,4])
plt.show()

下面是面向过程绘图的一些函数方法

函数功能
plt.plot坐标图
plt.boxplot箱型图
plt.bar条形图
plt.barh横向条形图
plt.polar极坐标图
plt.pie饼图
plt.psd功率谱密度图
plt.specgram普图
plt.coherex-y的相关性函数
plt.scatter散点图
plt.step步阶图
plt.hist直方图
plt.contour等值图
plt.vlines垂直图
plt.stem柴火图
plt.plot_date绘制数据日期
绘制二维图plot

plot
plot(x,y,format_string)
plot功能是把给出的点的次序把点用直线连起来。注意坐标必须是一维的,像[[1,2,3]]这种二维坐标就会无法显示。
示例图:
这里写图片描述
可用plot函数来实现,但是plot函数连线是按坐标给出的顺序依次连接各点的。所以必须先对X进行排序,之后再调用plot函数。示例代码(图中曲线):
`index = x.argsort(0);
x =x[index][:,0];
ypredict = ypredict[index][:,0];
ax.plot(x,ypredict);

  • 参数给出两个坐标向量
import matplotlib.pyplot as plt;#引入
def getPlot(X,y,w):#三个参数,数据集,结果集,权重fig = p.figure();ax = fig.add_subplot(111);#添加画布,111指把画布分为1行1列,而图画在从左向右从上到下第一块。ax.scatter(X[:,1],y);#散点图(scatter是绘制散点图。第一个参数是x坐标,第二个是y坐标)ax.plot(X[:,1],X*w);#拟合直线(plot是绘制直线。两个点就可以确定一条直线)p.show();#显示
  • 参数是一个坐标向量或矩阵

    当参数是一个坐标向量时,默认给出的是y轴坐标,x轴从0开始计数,即为坐标向量的索引。
    如:
    ax.plot([1,2,3,4]);
    当参数是一个矩阵时,默认把每列的数值看成一条线的y轴坐标,x轴坐标从0开始。每列画出一条线,有几列就画几条线。
    如:
    ax.plot([[1,2,3,4],[2,3,4,5],[6,7,8,9]]);

  • 格式控制
    用法:plot(x,y,format_string,keywords_args)
    例:
    plot(x,y,'r--+')

    plot(x,y,color='red',linestyle='--',marker='+')
    (格式控制可以用两种方式实现,(1)全写在一个format_string字符串中,顺序是颜色,风格,标记。(2)使用关键字参数color,linestyle,marker,markerfacecolor(标记颜色),markersize指定,但关键字参数必须放在最后。)

  • 颜色
颜色字符说明
‘b’蓝色
‘g’绿色
‘r’红色
‘c’青绿色
‘m’洋红色
‘y’黄色
‘k’黑色
‘w’白色
‘#008000’RGB某颜色
‘0.8’灰度值字符串
  • 风格
风格字符说明
‘-‘实线
‘–’破折线
‘-.’点划线
‘:’虚线
’ ‘无线条
  • 标记
    标记字符表明数据点的以什么样的形状标记出来(比如我们用两个点画了一条直线,那么这两个点如何在图中标记出来。)
标记字符说明
‘.’点标记
‘,’像素标记(极小点)
‘^’上三角
‘v’倒三角
‘>’右三角
‘<’左三角
‘o’实心圈标记
‘1’
‘2’
‘3’
‘4’
’s’实心方形
‘p’实心五角
‘*’星形标记
‘h’
‘H’
‘+’十字
‘x’
‘D’菱形
‘d’
‘|’
  • 同时绘制多条曲线
import matplotlib.pyplot as plt
plt.plot(x1,y1,x2,y2,x3,y3)
plt.show()
绘制三维图
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as pltfig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x1,x2,x3,c='red');//绘制散点图
ax.plot(l1,l2,l3,c = "green");//绘制直线
#ax.plot([1,2,3],[3,4,1],[8,4,1],'--')plt.show()
绘制饼图
import matplotlib.pyplot as plt
labels = [1,2,3,4]
sizes = [10,30,40,20]
explode = [0,0.1,0,0]#突出某一块
plt.pie(sizes,explode = explode,labels = labels,autopct="%1.1f%%",shadow = True,startangle = 90)#shadow是否有阴影,startangle旋转角度
plt.axis('equal')#xy坐标尺度相同,即形成一个圆而不是椭圆
plt.show()

效果图:
这里写图片描述

绘制直方图
import matplotlib.pyplot as plt
import numpy as np
a = np.random.normal(10,4,1000)#高斯分布
plt.hist(a,40,normed = 1,facecolor='r')#40指共分成40个区间,normed=0为落到每个区间的数的个数,normed=1为落到各个区间的频率
plt.show()

效果图:
这里写图片描述

绘制极坐标图
绘制散点图
显示中文
  • windows下

第一种方法:使用matplotlib的rcParams来指定字体。注意这个方法是改变全局字体,所有字体都会被改变。
rcParams的几个常用参数:

参数说明
font.family字体名字,如SimHei为黑体
font.size字体大小,整数字号,或者’large’,’x-small’
font.style字体风格,如正常normal,斜体italic
中文字体种类说明
SimHei中文黑体
Kaiti中文楷体
LiSu中文隶书
FangSong中文仿宋
YouYuan中文幼圆
STSong华文宋体

例:

import matplotlib.pyplot as plt;
plt.rcParams['font.family'] = ['SimHei']  # 用来正常显示中文标签(黑体)
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

第二种方法:在需要改字体的地方使用fontproperties属性(推荐),这个不会改变全局字体,只是在需要改变的地方改变字体。
例:

plt.xlabel('好的',fontproperties = 'SimHei',fontsize = 20)
  • liunx下
def conf_zh(font_name):from pylab import mplmpl.rcParams['font.sans-serif'] = [font_name]mpl.rcParams['axes.unicode_minus'] = False
conf_zh('Droid Sans Fallback');
保存图像

plt.savefig('name',dpi)#默认为png格式,dpi为清晰度
注意:savefig必须在show方法之前使用,否则会保存一个空图。

坐标轴尺度

plt.axis([-1,9,0,8])#即横轴显示从-1到9,纵轴从0到8。

文本显示

pyplot中有以下文本显示函数

函数说明
xlabel(),ylabel()横轴和纵轴名称
title()标题
text()在任意位置添加文字
annotate()增加带箭头的注释

例:
在坐标(2,1)处添加文字 μ=1 (这里文字可以用latex公式):

plt.text(2,1,'\$\mu=1$');

注释:

plt.annotate(s,xy = arrow_crd,xytext = text_crd,arrowprops=dict)
//参数分别为,添加的注释字符串,箭头的位置,注释的位置,其他关键字字典参数

如:

plt.annotate('$\mu=1$',xy=(2,6),xytext=(2.25,6),arrowprops=dict(facecolor='black',shrink=0.1,width=2))//黑色,箭头缩放,箭头宽度

效果图:
这里写图片描述

显示背景网格

plt.grid(True)
效果图:
这里写图片描述

绘制子绘图区域
  1. subplot
    plt.subplot(3,2,4)/plt.subplot(324)#三行两列,当前图像绘制到从左到右,从上到下第4个。
  2. subplot2grid
    subplot2grid(GridSpec,CurSpec,colspan,rowspan)
    具体用法如下图所示:
    这里写图片描述
    第一个参数指把总区域划分成3行3列。第二个参数指当前选中的区域的最左侧是在几行几列,第三个参数如果是colspan指跨越多少列,如果是rowspan指跨越多少行,当然也可以同时指定colspan和rowspan,指跨越多少行多少列。
    想在哪个区域画图,就把画图代码写在此划分代码的下面,如在最上面的那个区域画图:
    plt.subplot2grid((3,3),(0,0),colspan=3)
    plt.plot([1,2,3],[2,4,6],[1,2,3],[3,6,9],[1,2,3],[4,8,12])

    1. GridSpec
      这里写图片描述

这篇关于python matplotlib库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1136738

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid