python matplotlib画图实例代码分享

python的matplotlib包支持我们画图,有点非常多,现学习如下。

首先要导入包,在以后的示例中默认已经导入这两个包

import matplotlib.pyplot as plt
import numpy as np 

然后画一个最基本的图

t = np.arange(0.0, 2.0, 0.01)#x轴上的点,0到2之间以0.01为间隔
s = np.sin(2*np.pi*t)#y轴为正弦
plt.plot(t, s)#画图 

plt.xlabel('time (s)')#x轴标签
plt.ylabel('voltage (mV)')#y轴标签
plt.title('About as simple as it gets, folks')#图的标签
plt.grid(True)#产生网格
plt.savefig("test.png")#保存图像
plt.show()#显示图像 

这是在一个窗口中画单张图的过程,那么如何画多张图呢?画图的过程相同,无非是画多张,然后设定位置。

x1 = np.linspace(0.0, 5.0)#画图一
x2 = np.linspace(0.0, 2.0)#画图二
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2) 

plt.subplot(2, 1, 1)#面板设置成2行1列,并取第一个(顺时针编号)
plt.plot(x1, y1, 'yo-')#画图,染色
plt.title('A tale of 2 subplots')
plt.ylabel('Damped oscillation') 

plt.subplot(2, 1, 2)#面板设置成2行1列,并取第二个(顺时针编号)
plt.plot(x2, y2, 'r.-')#画图,染色
plt.xlabel('time (s)')
plt.ylabel('Undamped') 

plt.show() 

两张图的示例如下

直方图的画法

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt 

mu = 100 # 正态分布的均值
sigma = 15 # 标准差
x = mu + sigma * np.random.randn(10000)#在均值周围产生符合正态分布的x值 

num_bins = 50
n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor='green', alpha=0.5)
#直方图函数,x为x轴的值,normed=1表示为概率密度,即和为一,绿色方块,色深参数0.5.返回n个概率,直方块左边线的x值,及各个方块对象
y = mlab.normpdf(bins, mu, sigma)#画一条逼近的曲线
plt.plot(bins, y, 'r--')
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')#中文标题 u'xxx' 

plt.subplots_adjust(left=0.15)#左边距
plt.show() 

直方图如下

3D图像的画法

3D离散点

#!/usr/bin/env python
# encoding: utf-8 

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D 

x_list = [[3,3,2],[4,3,1],[1,2,3],[1,1,2],[2,1,2]]
fig = plt.figure()
ax = fig.gca(projection='3d')
for x in x_list:
  ax.scatter(x[0],x[1],x[2],c='r')
plt.show()

画空间平面

from mpl_toolkits.mplot3d.axes3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np 

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
X=np.arange(1,10,1)
Y=np.arange(1,10,1)
X, Y = np.meshgrid(X, Y)
Z = 3*X+2*Y+30
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1,cmap=cm.jet,linewidth=0, antialiased=True)
ax.set_zlim3d(0,100)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()  

画空间曲面

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np 

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.1)
Y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
#画表面,x,y,z坐标, 横向步长,纵向步长,颜色,线宽,是否渐变
ax.set_zlim(-1.01, 1.01)#坐标系的下边界和上边界 

ax.zaxis.set_major_locator(LinearLocator(10))#设置Z轴标度
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))#Z轴精度
fig.colorbar(surf, shrink=0.5, aspect=5)#shrink颜色条伸缩比例(0-1),aspect颜色条宽度(反比例,数值越大宽度越窄) 

plt.show() 

3D图分别如下

饼状图画法

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt 

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'#设置标签
sizes = [15, 30, 45, 10]#占比,和为100
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']#颜色
explode = (0, 0.1, 0, 0) #展开第二个扇形,即Hogs,间距为0.1 

plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)#startangle控制饼状图的旋转方向
plt.axis('equal')#保证饼状图是正圆,否则会有一点角度偏斜 

fig = plt.figure()
ax = fig.gca() 

import numpy as np 

ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90, radius=0.25, center=(0, 0), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90, radius=0.25, center=(1, 1), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90, radius=0.25, center=(0, 1), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90,radius=0.25, center=(1, 0), frame=True) 

ax.set_xticks([0, 1])#设置位置
ax.set_yticks([0, 1])
ax.set_xticklabels(["Sunny", "Cloudy"])#设置标签
ax.set_yticklabels(["Dry", "Rainy"])
ax.set_xlim((-0.5, 1.5))
ax.set_ylim((-0.5, 1.5)) 

ax.set_aspect('equal')
plt.show() 

饼状图如下:

平时用到的也就这几种,掌握这几种就差不多了,更多内容见

https://matplotlib.org/users/screenshots.html

总结

以上就是本文关于python matplotlib画图实例代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

(0)

相关推荐

  • Python通过matplotlib画双层饼图及环形图简单示例

    (1) 饼图(pie),即在一个圆圈内分成几块,显示不同数据系列的占比大小,这也是我们在日常数据的图形展示中最常用的图形之一. 在python中常用matplotlib的pie来绘制,基本命令如下所示(python3.X版本): vals = [1, 2, 3, 4]#创建数据系列 fig, ax = plt.subplots()#创建子图 labels = 'A', 'B', 'C', 'D' colors = ['yellowgreen', 'gold', 'lightskyblue', '

  • Python的地形三维可视化Matplotlib和gdal使用实例

    我是以Python开门的,我还是觉得Python也可以进行地形三维可视化,当然这里需要借助第三方库,so,我就来介绍:Python一个很重要可视化插件,Matplotlib. Matplotlib是Python最著名的绘图库,它提供了一整套友好的命令,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.你会发现Matplotlib和matlab相似,但是你知道matlab强大是很强大,但是安装包就有7G,一下就让我失去玩弄他的兴趣. Matplotlib的二维图形非

  • python matplotlib中文显示参数设置解析

    最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了. PS:本文仅针对Windows,其他平台仅供参考. 原因 大致就是matplotlib库中没有中文字体. 我安装的anaconda,这是对应的matplotlib的字体所在文件夹(怎么找到matplotlib配置文件夹所在,下面解决方案会叙述,easyman~). C:\Anaconda64\Lib\site-packages\matplotlib\mpl-data\fon

  • Python通过matplotlib绘制动画简单实例

    Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等. matplotlib从1.1.0版本以后就开始支持绘制动画,具体使用可以参考官方帮助文档.下面是一个很基本的例子: """ A simple example of an animated plot """ import n

  • Python使用Matplotlib实现雨点图动画效果的方法

    本文实例讲述了Python使用Matplotlib实现雨点图动画效果的方法.分享给大家供大家参考,具体如下: 关键点 win10安装ffmpeg animation函数使用 update函数 win10安装ffmpeg 因为最后要将动画图保存为.mp4格式,要用到ffmpeg,去官网下载,我az下载的是windows64bit static版本的,下载后解压到软件安装常用路径,并将ffmpeg路径添加到环境变量(这个方法在最后没用,但还是添加一下) animationa函数 准确来说是anima

  • Python使用Matplotlib实现Logos设计代码

    本文主要展示了使用matplotlib设计logo的示例及完整代码,首先看下其演示结果: Python代码如下: import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.cm as cm mpl.rcParams['xtick.labelsize'] = 10 mpl.rcParams['ytick.labelsize'] = 12 mpl.rcParams['ax

  • matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatterplot in 3D. ''' from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np def randrange(n, vmin, vmax): ''' Helper f

  • Python实战小程序利用matplotlib模块画图代码分享

    Python中的数据可视化 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件. 实战小程序:画出y=x^3的散点图 样例代码如下: #coding=utf-8 import pylab as y #引入pylab模块 x = y.np.linspace(-10, 10, 100) #设置x横坐标范围和点数 y.plot(x, x*x*x,'or') #生成图像 ax = y.gca() a

  • python matplotlib画图实例代码分享

    python的matplotlib包支持我们画图,有点非常多,现学习如下. 首先要导入包,在以后的示例中默认已经导入这两个包 import matplotlib.pyplot as plt import numpy as np 然后画一个最基本的图 t = np.arange(0.0, 2.0, 0.01)#x轴上的点,0到2之间以0.01为间隔 s = np.sin(2*np.pi*t)#y轴为正弦 plt.plot(t, s)#画图 plt.xlabel('time (s)')#x轴标签 p

  • Python matplotlib画图实例之绘制拥有彩条的图表

    生产定制一个彩条标签. 首先导入: import matplotlib.pyplot as plt import numpy as np from matplotlib import cm from numpy.random import randn 制作拥有垂直(默认)彩条的图表: fig, ax = plt.subplots() data = np.clip(randn(250, 250), -1, 1) cax = ax.imshow(data, interpolation='neares

  • python聊天程序实例代码分享

    代码简单,直接看代码吧: 复制代码 代码如下: import socketimport threadingimport re#import Tkinter def ser():    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)    s.bind(('',33333))    s.listen(1)    conn,addr=s.accept()    while True:        print '[%s:%d] send a me

  • Python matplotlib画图与中文设置操作实例分析

    本文实例讲述了Python matplotlib画图与中文设置操作.分享给大家供大家参考,具体如下: 采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚本, #-*- coding: utf-8 -*- from pylab import * t = arange(-4*pi, 4*pi, 0.01) y = sin(t)/t plt.plot(t, y) plt.title(u'钟形函数') plt.xlabel(u'时间') plt.ylabel(u'幅度'

  • Python matplotlib 画图窗口显示到gui或者控制台的实例

    我们再用Jupyter-notebook,ipython-console,qtconsole的时候,有的时候画图希望不弹出窗口,直接画在console里,又得时候有希望弹出窗口,因为console里太小了 那么我们可以用下面的命令 %matplotlib inline 然后在控制台里画图就可以显示在控制台里 %matplotlib qt5 #备选参数: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4

  • Python关于反射的实例代码分享

    反射 在Python中,能够通过一个对象,找出type.class.attribute或者method的能力,成为反射. 函数与方法 内建函数: getattr(object,name[,degault]) 通过name返回object的属性值,当属性不存在,将使用default返回,如果没有default,则抛出AttributeError.Name必须为字符串. setattr(object,name,value) object的属性存在,则覆盖,不存在,新增. hasattr(object

  • Python线程池thread pool创建使用及实例代码分享

    目录 前言 一.线程 1.线程介绍 2.线程特性 轻型实体 独立调度和分派的基本单位 可并发执行 4)共享进程资源 二.线程池 三.线程池的设计思路 四.Python线程池构建 1.构建思路 2.实现库功能函数 ThreadPoolExecutor() submit() result() cancel() cancelled() running() as_completed() map() 前言 首先线程和线程池不管在哪个语言里面,理论都是通用的.对于开发来说,解决高并发问题离不开对多个线程处理

  • python验证码识别实例代码

    本文研究的主要是Python验证码识别的相关代码,具体如下. Talk is cheap, show you the Code! import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans from PIL import Image #打开图像 im=np.array(Image.open('yzm.png')) #得到图像3个维度 h,w,san=im.shape X=[(h-x,y

  • Python matplotlib画图时图例说明(legend)放到图像外侧详解

    用python的matplotlib画图时,往往需要加图例说明.如果不设置任何参数,默认是加到图像的内侧的最佳位置. import matplotlib.pyplot as plt import numpy as np x = np.arange(10) fig = plt.figure() ax = plt.subplot(111) for i in xrange(5): ax.plot(x, i * x, label='$y = %ix$' % i) plt.legend() plt.sho

  • 解决Linux系统中python matplotlib画图的中文显示问题

    最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些初步的数据挖掘和分析. 在使用matplotlib画图时,横坐标为中文,但是画出的条形图横坐标总是显示"框框",就去查资料解决.感觉这应该是个比较常见的问题,网上的中文资料也确实很多,但是没有任何一个彻底解决了我遇到的问题.零零碎碎用了快3个小时的时间,才终于搞定.特此分享,希望能帮到有同

随机推荐