Python利用Matplotlib绘制图表详解
短信预约 -IT技能 免费直播动态提醒
前言
Matplotlib 是 Python 中类似 MATLAB 的绘图工具,如果您熟悉 MATLAB,那么可以很快的熟悉它。
Matplotlib 提供了一套面向对象绘图的 API,它可以轻松地配合 Python GUI 工具包(比如 PyQt,WxPython、Tkinter)在应用程序中嵌入图形。与此同时,它也支持以脚本的形式在 Python、IPython Shell、Jupyter Notebook 以及 Web 应用的服务器中使用。
下面将介绍一些用Matplotlib绘制的图表
折线图绘制与显示
# 展现一周天气
# 1.创建画布
plt.figure(figsize=(20,8))
# plt.figure(figsize=(),dpi=)
# figsize:指定图的长宽
# dpi:图像清晰度
# 返回fig对象
# 2.绘制图像
plt.plot([1,2,3,4,5,6,7],[17,17,18,15,11,11,13],label="hh")
# plt.plot(x,y,color=,linestyle=",label=")
# figure, axes = plt.subplots(nrows=1, ncols=2, figsize=(20,8), dpi=80)
# 显示图例
plt.legend(loc="lower left")
# 添加网格显示
plt.grid(True,linestyle='-',alpha=0.5)
# 3.保存图像 必须放在show的前边,因为show会释放图像资源
# plt.savefig("test.png")
# 4.显示图像
plt.show()
绘制数学函数图像
import numpy as np
# 1.准备x,y数据
x = np.linspace(-1,1,1000)
y = 2 * x * x
# 2.创建画布
plt.figure(figsize=(20,8), dpi=80)
# 3.绘制图像
plt.plot(x,y)
# 4.显示图像
plt.show()
from jupyterthemes import jtplot
jtplot.style(theme='monokai') #选择一个绘图主题
import matplotlib.pyplot as plt
# 个别环境需要以下代码
%matplotlib inline
plt.figure()
plt.plot([1,0,9],[4,5,6])
plt.show()
散点图绘制
# 1.准备数据
x, y = [1,2,3,4,5,6,7], [17,17,18,15,11,11,13]
# 2.创建画布
plt.figure(figsize=(20, 8))
# 3.绘制图像
plt.scatter(x,y)
# 4.显示图像
plt.show()
绘制柱状图
# 1.准备数据
x, y = [1,2,3,4,5,6,7], [17,17,2,15,11,11,13]
# 2.创建画布
plt.figure(figsize=(20, 8))
# 3.绘制图像
plt.bar(x,y,width=0.5,color=['r','b','y','g'])
# 4.显示图像
plt.show()
绘制直方图
x = [1,2,3,4,5,6,17,17,18,15,11,45,12,54,23,45,6,12,87,51,11,13]
plt.figure(figsize=(20,8), dpi=80)
distance = 2
group_num = int((max(x) - min(x)) / distance)
plt.hist(x, bins=group_num)
plt.show()
饼图
# 1.准备数据
x, y = [1,2,3,4,5,6,7], ['17','17','2','15','11','11','13']
# 2.创建画布
plt.figure(figsize=(20, 8))
# 3.绘制图像
plt.pie(x,labels=y,autopct='%1.2f%%',colors=['r','b','y','g'])
# x,y轴刻度等长
plt.axis('equal')
plt.legend(loc="lower left")
# 4.显示图像
plt.show()
到此这篇关于Python利用Matplotlib绘制图表详解的文章就介绍到这了,更多相关Python Matplotlib绘制图表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341