目录

绘制基础

点线绘制

柱状图

饼状图

直方图

三维图


Matplotlib是一个Python的2D 绘图库。通过Matplotib, 开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。Matplotib,可让数据可视化,更直观的真实给用户。使数据更加客观、更具有说服力。Matplotlib 是Python的库,又是开发中常用的库。

matplotlib开发环境搭建:如果使用的是Anaconda Python开发环境,那么Matplotib己经被集成进Anaconda,并不需要单独安装。如果使用的是标准的Python开发环境则需安装:pip install matplotlib,Matplotlib官方网站:Matplotlib — Visualization with Python

绘制基础

在使用Matplotlib绘制图形时,其中有两个最为常用的场景。一个是画点,一个是画线。pyplot基本方法的使用如下表:

点线绘制

使用plot和scatter绘制出来的图形没有区别,但使用plot绘制图形的速度优于scatter。如果画一堆点,而且点的形式没有差别,则使用plot;如果点的形式有差别(指点的大小和颜色不同)则必须使用scatter。线的形状和颜色:

import matplotlib.pyplot as plt
import numpy as npdef zhixian():plt.plot([2, 5, ], [7, 9])  # 绘制直线def zhexian():x = range(-50, 51)y = [i ** 3 for i in x]plt.plot(x, y, linewidth=5)  # linewidth线条粗细参数plt.title('一元三次方程坐标图', fontsize=24)  # 图标标题plt.xlabel('x值', fontsize=12)  # x坐标轴标签plt.ylabel('y值:x^3', fontsize=12)  # y坐标轴标签plt.rcParams['font.sans-serif'] = ['SimHei']  # matplotlib默认不支持中文,解决正常显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 解决负坐标不显示的问题plt.savefig('一元三次图.jpg')  # 保存图片,不指定图片格式时默认保存为.png格式def zyxtest(model=0):x = np.linspace(0, 10, 100)  # 生成1-10之间的100个等差数列sin_y = np.sin(x)cos_y = np.cos(x)if model == 0:  # 如果是0,线条绘制到同一个坐标中plt.plot(x, sin_y)  # 绘制正弦曲线plt.plot(x, cos_y)  # 绘制余弦曲线else:  # 划分区域绘制 subplot参数:划分的行数,划分的列数,所在行列的区域位置(第几块位置)plt.subplot(2, 3, 1)plt.plot(x, sin_y)plt.subplot(2, 3, 5)plt.plot(x, cos_y)def change_xy():x = range(-10, 11)y = [i ** 2 for i in x]plt.xlim(-20, 20)  # 修改x轴坐标plt.ylim(-120, 120)  # 修改y轴坐标plt.plot(x, y)def Scatter():x = np.linspace(0, 10, 100)sin_y = np.sin(x)# plt.scatter(x,sin_y)   # 散点图plt.plot(x, sin_y, 'o')  # 指定点的种类画散点图def random_Scatter():#注意:点的个数和颜色的个数要相同。点的个数和点大小的个数可以不同,如果点的个数大于大小的个数,则会循环获取大小np.random.seed(0)  # 执行多次,每次获取同样的随机数x = np.random.rand(100)y = np.random.rand(100)size = np.random.rand(100) * 300color = np.random.rand(100)plt.scatter(x, y, s=size, c=color,alpha=0.8)if __name__ == '__main__':random_Scatter()plt.show()
import matplotlib.pyplot as plt# 设置线条颜色样式和图例
x = range(1, 11)
y1, y2, y3 = [i for i in x], [i + 1 for i in x], [i + 2 for i in x]plt.plot(x, y1, 'or', label='红色点')  # label图例名
plt.plot(x, y2, '*g', label='绿色*')
plt.plot(x, y3, ':y', label='黄虚线')# 添加图例右下角lower right(左上角upper left);边框;透明度;阴影;边框宽度
plt.legend(loc='lower right', fancybox=True, framealpha=0.1, shadow=True, borderpad=1)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.show()

25 个常用 Matplotlib 图的 Python 代码 - 守护式等待 - 博客园

柱状图

使用bar函数绘制柱状图,柱状图需要水平的x坐标值,以及每一个x坐标值对应的y坐标值,从而形成柱状的图,柱状图主要用来纵向对比和横向对比。需要注意的是bar函数的宽度并不是像素宽度。bar 函数会根据二维坐标系的尺寸,以及x坐标值的多少,自动确定每一个柱的宽度,而widh指定的宽度就是这个标准柱宽度的倍数。该参数值可以是浮点数,如0.5, 表示柱的宽度是标准宽度的0.5倍。

import matplotlib.pyplot as pltdef bartest():x = ['第一季度', '第二季度', '第三季度', '第四季度']y = [-1011, 1500, -1390, 1280]br = plt.bar(x, y, width=0.3)  # width修改柱状图的宽度# plt.xticks(x1,x2)   # 修改x坐标轴的值,参数为原来的值和新值# plt.yticks(y1,y2)   # 修改y坐标轴的值plt.axhline(0, color='red', linewidth=2)  # 添加分割线,0表示y=0的直线for bar, width in zip(br, y):  # 通过判断正负显示不同颜色if width < 0:bar.set(color='yellow')def barhtest():x = ['第一季度', '第二季度', '第三季度', '第四季度']y = [-1011, 1500, -1390, 1280]bh = plt.barh(x, y, height=0.3)  # width修改柱状图的宽度plt.axvline(0, color='yellow', linewidth=2)  # 添加分割线,0表示x=0的直线for bar, height in zip(bh, y):if height < 0:bar.set(color='green')if __name__ == '__main__':plt.subplot(2, 2, 1)bartest()plt.subplot(2, 2, 4)barhtest()plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['font.sans-serif'] = ['SimHei']plt.show()
import matplotlib.pyplot as plt
import numpy as npdef test():x = [1, 2, 3, 4]y1 = np.random.randint(100, 500, size=4)y2 = np.random.randint(100, 500, size=4)y3 = np.random.randint(100, 500, size=4)width = 0.2plt.bar(x, y1, alpha=0.5, width=width, label='季度第一月')plt.bar([i + width for i in x], y2, alpha=0.5, width=width, label='季度第二月')plt.bar([i + width * 2 for i in x], y3, alpha=0.5, width=width, label='季度第三月')x_label = ['第{}季度'.format(i) for i in x]plt.xticks([i + width for i in x], x_label)plt.ylim(0, 650)if __name__ == '__main__':test()plt.legend()plt.rcParams['font.sans-serif'] = ['SimHei']plt.show()

饼状图

import matplotlib.pyplot as pltdef bingtu():python = 10.95c = 11.62java = 11.17vb = 4.5other = (100 - python - c - java - vb)labels = ['python', 'c', 'java', 'vb', 'other']# colors = ['']# labels:名称、colors:颜色、explode:分裂、autopct:显示百分比paches, texts, autotexts = plt.pie([python, c, java, vb, other], labels=labels, explode=[0.1, 0, 0, 0, 0],autopct='%0.1f%%')for text in autotexts:text.set_color('white')  # 设置饼状图的字体颜色text.set_fontsize(10)for text in texts:text.set_fontsize(20)  # 设置饼状图的字体大小if __name__ == '__main__':bingtu()plt.show()

直方图

使用hist函数绘制直方图,直方图与柱状图的分格类似,都是由若干个柱组成,但直方图和柱状图的含义却有很大的差异。直方图是用来观察分布状态的,而柱状图是用来看每一个X坐标对应的Y的值的。也就是说,直方图关注的是分布并不关心具体的某个值,而柱状图关心的是具体的某个值。

import matplotlib.pyplot as plt
import numpy as npdef zft1():x = np.random.randn(1000)plt.hist(x, bins=100)  # bins修改柱的宽度def zft2():# 正态分布直方图x, y, z = np.random.normal(0, 0.8, 1000), np.random.normal(-2, 1, 1000), np.random.normal(1, 2, 1000)kwargs = dict(bins=100, alpha=0.5)plt.hist(x, **kwargs)plt.hist(y, **kwargs)plt.hist(z, **kwargs)def dgx():x = np.linspace(-10, 10.100)y = np.linspace(-10, 10, 100)# 计算x和y的相交点aX, Y = np.meshgrid(x, y)# 计算Z的坐标Z = np.sqrt(X ** 2 + Y ** 2)plt.contourf(X, Y, Z)# plt.contour(X, Y, Z)# 颜色越深表示值越小,中间的黑色表示z=0.if __name__ == '__main__':dgx()plt.show()

三维图

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 创建X、Y、Z坐标
X = [10, 8, 4, 7]
Y = [5, 4, 4, 3]
Z = [10, 100, 50, 45]
fig = plt.figure()
# 创建一个Axes3D子图放到figure画布里面
ax = Axes3D(fig)
ax.plot_trisurf(X, Y, Z)
plt.show()

三维绘图:Matplotlib.pyplot 三维绘图 - 文锅儿 - 博客园

python-Matplotlib(2D绘图)相关推荐

  1. Python Matplotlib 3D绘图详解(汇总)

    Python Matplotlib 3D绘图详解(汇总) 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为 ...

  2. python绘图实例-Python matplotlib基础绘图函数示例

    原标题:Python matplotlib基础绘图函数示例 Pyplot基础图标函数: 函数 说明 plt.plot(x,y,fmt,-) 绘制一个坐标图 plt.boxplot(data,notch ...

  3. python matplotlib各种绘图类型完整总结

    文章目录 1. Matplotlib图像基础 1.1 __基本绘图实例:sin.cos函数图__ 1.2 plot()函数详解 1.3 __matplotlib中绘图的默认配置__ 1.4 __设置图 ...

  4. Python Matplotlib 花式绘图和中文字符显示、散点图、设置网格和散点函数拟合

    目录 1.隔段的bar绘图 2.显示中文字符的曲线绘制 3.需要注意的内容 4.Python绘图库Matplotlib.pyplot之网格线设置(plt.grid()) 5.绘制散点分布图 6.调整图 ...

  5. Python — matplotlib.pyplot 绘图模块及常用函数

    目录 1. 基本用法与折线图 pyplot 模块的常用函数 折线图函数: matplotlib.pyplot.plot() 常用 format_string 参数 常用函数 grid () 控制各轴网 ...

  6. Python matplotlib高级绘图详解

    Pyplot绘图结构 Aritists matplotlib API包含有三层: backend_bases.FigureCanvas : 图表的绘制领域 backend_bases.Renderer ...

  7. Python matplotlib 批量绘图内存不够问题(Out of memory)

    在使用matplotlib批量绘制图片时,内存占用会随着绘制图片数量的增加而增加,最终内存不够,提示为:Out of memory 解决办法 1.在导入matplotlib库后,且在matplotli ...

  8. python matplotlib 实时绘图

    有时候,需要获取动态数据,并实时绘图.比如从串口读取数据等等 import matplotlib.pyplot as pltax = [] # 定义一个 x 轴的空列表用来接收动态的数据 ay = [ ...

  9. python绘图实例-Python——matplotlib基础绘图函数示例

    1. 2.饼图 (1) import matplotlib.pyplot as plt labels='frogs','hogs','dogs','logs'% sizes=[15,30,45,10] ...

  10. Python matplotlib库绘图时设置标题 (label)、坐标轴 (axis) 和标注 (legend)的字体及大小

    文章目录 1 标题 2 坐标轴 3 标注 4 示例 5 展示 6 说明 1 标题 plt.xlabel('False positive rate', fontdict={"family&qu ...

最新文章

  1. Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件
  2. B - Collisions
  3. Android 笔记之 R 文件
  4. 改善医疗营运效率 哈佛医学中心与 AWS 共同合作
  5. 领跑BI赛道,永洪科技入选大数据创新排行榜
  6. oracle10_client的安装,Oracle10.2ClientWindows安装.doc
  7. String() 函数把对象的值转换为字符串。
  8. [转]Linux中如何自动启动服务
  9. FID使用(Frechet Inception Distance score)
  10. 长沙中职英语计算机等级考试查询,湖南省中等职业教育公共基础课达标训练英语291-300...
  11. java报错空指针异常_分析使用Spring Boot进行单元测试时,报出空指针异常
  12. 12.15daily_scrum
  13. erlang 小程序:整数序列,搜索和为正的最长子序列
  14. 2015 2020 r4烧录卡 区别_2020版药典,药用辅料被重视了!
  15. 深度置信网络(DBN)【经典的DBN网络结构是由若干层 RBM(受限波尔兹曼机)和一层 BP 组成的一种深层神经网络】
  16. Android音频系统之音频基础
  17. 一些免费的代理服务器
  18. timesat数据如何读取_判二手车调表车另类方法。如何利用OBD读取可靠数据(技术类)...
  19. ih5语言叫html5,iH5最专业的H5制作工具
  20. android 获取wifi连接不上,如何检测无法在android中连接wifi?

热门文章

  1. Unity渲染流程(渲染管线)(渲染流水线)
  2. 【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘
  3. JS 添加属性的两种方式
  4. 通信网络的信息交换方式
  5. Android开发managedQuery方法过时如何解决
  6. 2019.5.31 晴
  7. visualbox安装ubuntu,第二次开机出现 Welcome to emergency mode! 解决办法
  8. 公共rtsp_可用rtsp地址
  9. ScarCruft不断进化,引入蓝牙收割机
  10. 2021年低压电工答案解析及低压电工试题及答案