目录

一、figure

二、plot

三、savefig

四、show

五、xticks

六、xlable和ylable

七、title

八、grid

九、plot绘制多条线

十、legend

十一、scatter

十二、bar

十三、barh

十四、绘制直方图


Python的底层绘图库,主要做数据可视化图表

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。

Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。

Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。

使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt:

from matplotlib import pyplot as plt

实例

from matplotlib import pyplot as plt
x = range(2,26,2)y = [15,13,14.5,17,20,25,26,26,24,22,18,15]plt.plot(x,y)
plt.show()

一、figure

可以理解为绘图之前,布置一张合适的画板,设置图片的大小,分辨率

函数定义如下

figure(num=None,  # autoincrement if None, else integer from 1-Nfigsize=None,  # defaults to rc figure.figsizedpi=None,  # defaults to rc figure.dpifacecolor=None,  # defaults to rc figure.facecoloredgecolor=None,  # defaults to rc figure.edgecolorframeon=True,FigureClass=Figure,clear=False,**kwargs)

figsize:设置画板的长,宽。是一个元组

dpi:在图像模糊时可以传入dpi参数,使图像更清晰

代码实例

fig = plt.figure(figsize=(20,8),dpi=80)

二、plot

绘制图的形状

函数定义如下

def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

参数说明:

  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。
  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。
  • **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
>>> plot(x, y)        # 创建 y 中数据与 x 中对应值的二维线图,使用默认样式
>>> plot(x, y, 'bo')  # 创建 y 中数据与 x 中对应值的二维线图,使用蓝色实心圈绘制
>>> plot(y)           # x 的值为 0..N-1
>>> plot(y, 'r+')     # 使用红色 + 号

颜色字符color:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。

线型参数linestyle:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。

标记字符:'.' 点标记,',' 像素标记(极小点),'o' 实心圈标记,'v' 倒三角标记,'^' 上三角标记,'>' 右三角标记,'<' 左三角标记...等等。

三、savefig

将绘制的图保存到本地

plt.savefig("./img.png")   #保存图片

可以保存为svg矢量图格式,放大不会有锯齿

四、show

plt.show()    #显示绘制的图片

五、xticks

设置x轴的刻度

_xtick_label = [i/2 for i in  range(4,49)]
plt.xticks(_xtick_label)

from matplotlib.font_manager import FontProperties  # 导入FontProperties
my_font = FontProperties(fname="C:\Windows\Fonts\simkai.ttf", size=14)  # 设置中文字体_xtick_labels = ["10点{}分".format(i) for i in  range(60)]
_xtick_labels += ["11点{}分".format(i) for i in  range(60)]plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=270,fontproperties=my_font)

六、xlable和ylable

添加x和y轴的标签

plt.ylabel("温度",fontproperties=my_font)

七、title

设置该图的标题

plt.title("10点到12点每分钟气温变化情况",fontproperties=my_font)

八、grid

设置图表中的网格线

def grid(visible=None, which='major', axis='both', **kwargs):
  • b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
  • which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
  • axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
  • **kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。
  • color:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。

    linestyle:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。

    linewidth:设置线的宽度,可以设置一个数字。

  • alpha:设置透明度

#绘制网格
plt.grid()

九、plot绘制多条线

x1 = np.array([0, 1, 2, 3])
y1 = np.array([3, 7, 5, 9])
x2 = np.array([0, 1, 2, 3])
y2 = np.array([6, 2, 13, 10])plt.plot(x1, y1, x2, y2)

十、legend

添加图例

plt.plot(x1, y1,label="自己")
plt.plot(x2, y2,label="同桌")
#添加图例
plt.legend(prop=my_font,loc="upper right")

参数介绍:

prop:设置字体格式

loc:

===============   =============
Location String   Location Code
===============   =============
'best'            0
'upper right'     1
'upper left'      2
'lower left'      3
'lower right'     4
'right'           5
'center left'     6
'center right'    7
'lower center'    8
'upper center'    9
'center'          10
===============   =============

十一、scatter

绘制散点图

def scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,vmin=None, vmax=None, alpha=None, linewidths=None, *,edgecolors=None, plotnonfinite=False, data=None, **kwargs):

参数说明:

x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。

s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。

c:点的颜色,默认蓝色 'b',也可以是个 RGB 或 RGBA 二维行数组。

marker:点的样式,默认小圆圈 'o'。

cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。

norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。

vmin,vmax::亮度设置,在 norm 参数存在时会忽略。

alpha::透明度设置,0-1 之间,默认 None,即不透明。

linewidths::标记点的长度。

edgecolors::颜色或颜色序列,默认为 'face',可选值有 'face', 'none', None。

plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。

**kwargs::其他参数。

y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,23,24]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,3,13,17,10,11,10,10,5,3]x_3 = range(1,32)
x_10 = range(51,82)
colors = [0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100,10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100,110,120,130,140,150,160]plt.scatter(x_3,y_3,c=colors,cmap='viridis')
plt.scatter(x_10,y_10,c=colors,cmap='viridis')

 十二、bar

用来绘制条形图

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties  # 导入FontProperties
my_font = FontProperties(fname="C:\Windows\Fonts\simkai.ttf", size=14)  # 设置字体fig = plt.figure(figsize=(20,15),dpi=80)a = ["战狼2","速度与激情8","功夫熊猫","西游伏魔篇"]
b = [56.01,26.94,17.54,16.49]plt.bar(range(len(a)),b,width=0.3)plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=90)plt.savefig("./img.png")plt.show()

绘制多次条形图

from matplotlib import pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties  # 导入FontProperties
my_font = FontProperties(fname="C:\Windows\Fonts\simkai.ttf", size=14)  # 设置字体fig = plt.figure(figsize=(20,8),dpi=80)a = ["战狼2","速度与激情8","功夫熊猫","西游伏魔篇"]
b_14 = [2358,399,2358,362]
b_15 = [123457,156,2045,168]
b_16 = [15746,312,4497,319]bar_width = 0.2x_14 = list(range(len(a)))
x_15 = [i + bar_width for i in x_14]
x_16 = [i + bar_width * 2 for i in x_14]plt.bar(range(len(a)),b_14,width=bar_width,label="9月14日")
plt.bar(x_15,b_15,width=bar_width,label="9月15日")
plt.bar(x_16,b_16,width=bar_width,label="9月16日")plt.legend(prop=my_font)plt.xticks(x_15,a,fontproperties=my_font)plt.savefig("./img.png")plt.show()

 十三、barh

绘制横向条形图

a = ["战狼2","速度与激情8","功夫熊猫","西游伏魔篇"]
b = [56.01,26.94,17.54,16.49]plt.barh(range(len(a)),b,height=0.3,color="#EEEE00")plt.yticks(range(len(a)),a,fontproperties=my_font)plt.grid(alpha=0.3)

十四、绘制直方图

组距:指每个小组的两个端点间的距离

组数  极差组距 = (max(a) - min(a))  bin_width 

def hist(x, bins=None, range=None, density=False, weights=None,cumulative=False, bottom=None, histtype='bar', align='mid',orientation='vertical', rwidth=None, log=False, color=None,label=None, stacked=False, *, data=None, **kwargs):
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties  # 导入FontProperties
my_font = FontProperties(fname="C:\Windows\Fonts\simkai.ttf", size=14)  # 设置字体fig = plt.figure(figsize=(20,8),dpi=80)a = [120,98,125,131,124,139,131,117,128,108,135,138,131,102,107,114,119,128,128,141]d = 5 #组数
num_bins = (max(a) - min(a)) // d;plt.hist(a,num_bins)plt.xticks(range(min(a),max(a)+d,d))plt.grid()plt.savefig("./img.png")plt.show()

频数图

当d不能被整除时,会有一些偏移

绘制频率图

设置参数 normed=True

plt.hist(a,num_bins,normed=True)

 频率图

用bar绘制直方图

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties  # 导入FontProperties
my_font = FontProperties(fname="C:\Windows\Fonts\simkai.ttf", size=14)  # 设置字体fig = plt.figure(figsize=(20,8),dpi=80)interval = [0,5,10,15,20,25,30,35,40,45,60,90]
width = [5,5,5,5,5,5,5,5,5,15,30,60]
quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]plt.bar(range(len(interval)),quantity,width=1)_x = [i-0.5 for i in range(len(width)+1)]
_xtick_labels = interval+[150]plt.xticks(_x,_xtick_labels)plt.grid()plt.savefig("./img.png")plt.show()

python的matplotlib库相关推荐

  1. python如何安装matplotlib_详解python安装matplotlib库三种失败情况

    (可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...

  2. python 颜色_如何使用python中matplotlib库分析图像颜色

    用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...

  3. Python的matplotlib库画图不能显示中文问题解决

    Python的matplotlib库画图不能显示中文问题解决 参考文章: (1)Python的matplotlib库画图不能显示中文问题解决 (2)https://www.cnblogs.com/CQ ...

  4. Ubuntu16.04 下python的matplotlib库加入中文字体(微软雅黑)

    Ubuntu16.04 下python的matplotlib库加入中文字体 一.首先安装微软雅黑字体 1.下载或者拷贝微软雅黑字体 2.将待安装的字体复制到Ubuntu下面的字体位置`/usr/sha ...

  5. Python学习-Matplotlib库绘制简单点阵图、线型图操作

    Python学习-Matplotlib库绘制简单散点图图和线型图.标签设置以及刻度线设置操作 目录 1.Matplotlib绘图细节的简单理解 2.绘制点图.线型图 3.给图表设置复杂标注 4.移动刻 ...

  6. python的matplotlib库绘制条形图、散点图、饼图、折线图

    python的matplotlib库绘制条形图.散点图.饼图.折线图 当我们学会了爬虫,抓取到了一些数据,接下来就是做数据分析了.本文章介绍绘制图形的基本代码. 打开cmd用pip 安装,若输入pip ...

  7. Python 之matplotlib库的安装及Read timed out Error的解决方案

    Python 之matplotlib库的安装 打开cmd窗口.点击开始栏,搜索cmd并打开. 找到安装的Python路径.可以通过右键点击Python快捷键,查找文件路径.(博主电脑并未分盘,故安装到 ...

  8. python的matplotlib库怎么安装,用pip给python安装matplotlib库的详细教程

    Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 1.首先在python里安装pip,打开安装python的文件夹,找到pyt ...

  9. python 二维强度图_荐 python数据分析matplotlib库使用之二维图形绘制

    本篇内容会在后期不定时更新 什么是matplotlib matplotlib是最流行的python底层绘图库,主要做数据可视化图表. 为什么要学习matplotlib 能将数据进行可视化,更直观的呈现 ...

  10. python的matplotlib库怎么安装_为Python安装matplotlib库

    好吧,在python的路上,每一步都要磕碰一下.本以为安装一个matplotlib库是一件很简单的事儿,事实证明,还是太年轻.这个时候只能: 不发牢骚了,该记的还是要记下来. 本来是参照matplot ...

最新文章

  1. 不要小看小小的 emoji 表情
  2. 世界首批智能音箱AI IQ测试报告,小米、京东和阿里初步PK
  3. NO29 用户提权sudo配置文件详解实践--志行为审计
  4. C语言-一维数组与指针
  5. DOS BAT批处理定义变量
  6. 【PP】重复生产参数文件说明
  7. c#操作mysql 执行语句_c# 数据库编程(通过SqlCommand 执行DML语句)
  8. Linux文本查看命令之touch
  9. Centos出现-bash: unzip: command not found的解决办法
  10. 【数理统计】基础理论归纳
  11. matlab中ncread读取nc文件其中一个三维参数的其中一维_Matlab使用技巧总结-1
  12. loj2291. 「THUSC 2016」补退选
  13. [NLP]OpenNLP块检测器(Chunker)的使用
  14. 阶段3 2.Spring_07.银行转账案例_3 分析事务的问题并编写ConnectionUtils
  15. scala条件替换_Scala:如何使用scala替换Dataframe中的值
  16. win8的cmd运行命令大全
  17. plsql使用方法(主要是sql语句)
  18. 美丽心灵:纪念 John Nash 夫妇
  19. CycleGAN的测试
  20. widows升级nodejs版本

热门文章

  1. 计算机顶会:投稿时间 会议介绍
  2. 【干货】XSS知识总结
  3. protel 二极管正负极怎么看
  4. CSS外边距合并和CSS清除浮动
  5. 定义矩形类(长length,宽widen)求面积(area)(简单例子)
  6. c++ Primer Plus笔记
  7. 关于主从同步时应该注意的一些问题;
  8. canvas[ymin_valid:ymax_valid + 1, xmin_valid:xmax_valid + 1] = np.fmax
  9. 研究显示情商高的人比智商高的可怕多了
  10. MATLAB | sRGB图像的灰度转换算法