python-Matplotlib(2D绘图)
目录
绘制基础
点线绘制
柱状图
饼状图
直方图
三维图
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绘图)相关推荐
- Python Matplotlib 3D绘图详解(汇总)
Python Matplotlib 3D绘图详解(汇总) 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为 ...
- python绘图实例-Python matplotlib基础绘图函数示例
原标题:Python matplotlib基础绘图函数示例 Pyplot基础图标函数: 函数 说明 plt.plot(x,y,fmt,-) 绘制一个坐标图 plt.boxplot(data,notch ...
- python matplotlib各种绘图类型完整总结
文章目录 1. Matplotlib图像基础 1.1 __基本绘图实例:sin.cos函数图__ 1.2 plot()函数详解 1.3 __matplotlib中绘图的默认配置__ 1.4 __设置图 ...
- Python Matplotlib 花式绘图和中文字符显示、散点图、设置网格和散点函数拟合
目录 1.隔段的bar绘图 2.显示中文字符的曲线绘制 3.需要注意的内容 4.Python绘图库Matplotlib.pyplot之网格线设置(plt.grid()) 5.绘制散点分布图 6.调整图 ...
- Python — matplotlib.pyplot 绘图模块及常用函数
目录 1. 基本用法与折线图 pyplot 模块的常用函数 折线图函数: matplotlib.pyplot.plot() 常用 format_string 参数 常用函数 grid () 控制各轴网 ...
- Python matplotlib高级绘图详解
Pyplot绘图结构 Aritists matplotlib API包含有三层: backend_bases.FigureCanvas : 图表的绘制领域 backend_bases.Renderer ...
- Python matplotlib 批量绘图内存不够问题(Out of memory)
在使用matplotlib批量绘制图片时,内存占用会随着绘制图片数量的增加而增加,最终内存不够,提示为:Out of memory 解决办法 1.在导入matplotlib库后,且在matplotli ...
- python matplotlib 实时绘图
有时候,需要获取动态数据,并实时绘图.比如从串口读取数据等等 import matplotlib.pyplot as pltax = [] # 定义一个 x 轴的空列表用来接收动态的数据 ay = [ ...
- python绘图实例-Python——matplotlib基础绘图函数示例
1. 2.饼图 (1) import matplotlib.pyplot as plt labels='frogs','hogs','dogs','logs'% sizes=[15,30,45,10] ...
- Python matplotlib库绘图时设置标题 (label)、坐标轴 (axis) 和标注 (legend)的字体及大小
文章目录 1 标题 2 坐标轴 3 标注 4 示例 5 展示 6 说明 1 标题 plt.xlabel('False positive rate', fontdict={"family&qu ...
最新文章
- Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件
- B - Collisions
- Android 笔记之 R 文件
- 改善医疗营运效率 哈佛医学中心与 AWS 共同合作
- 领跑BI赛道,永洪科技入选大数据创新排行榜
- oracle10_client的安装,Oracle10.2ClientWindows安装.doc
- String() 函数把对象的值转换为字符串。
- [转]Linux中如何自动启动服务
- FID使用(Frechet Inception Distance score)
- 长沙中职英语计算机等级考试查询,湖南省中等职业教育公共基础课达标训练英语291-300...
- java报错空指针异常_分析使用Spring Boot进行单元测试时,报出空指针异常
- 12.15daily_scrum
- erlang 小程序:整数序列,搜索和为正的最长子序列
- 2015 2020 r4烧录卡 区别_2020版药典,药用辅料被重视了!
- 深度置信网络(DBN)【经典的DBN网络结构是由若干层 RBM(受限波尔兹曼机)和一层 BP 组成的一种深层神经网络】
- Android音频系统之音频基础
- 一些免费的代理服务器
- timesat数据如何读取_判二手车调表车另类方法。如何利用OBD读取可靠数据(技术类)...
- ih5语言叫html5,iH5最专业的H5制作工具
- android 获取wifi连接不上,如何检测无法在android中连接wifi?