概述

众所周知matplotlib是最大的,最老的,也是最强壮的Python可视化库。所以是咱们做Python可视化不行忽略的一个库。这儿给咱们一个学Python可视化的学习路径引荐,我觉得是这样的比较好:首要matplotlib其次seaborn,接着才是boken,pyecharts这些。理由便是matplotlib是根底,seaborn是进阶,pyecharts是出山大约便是这样。OKOK,接下来咱们看看matplotlib的具体内容吧,欢迎走进数据之美–数据可视化的magic。

内容

准备工作

allright,allright。一切的操作开端之前你要记住先学好numpy和pandas再来哦。然后导入咱们的matplotlib库。

  • 经过Jupyter的魔法命令%matplotlib inline能够直接在jupyter notebook中展现图表,不需求每个图表都是用plt.show()来展现来~
  • import matplotlib.pyplot as plt 做完这两步就能够开端咱们的画图了。

根底图表

经过plt.subplot()命令来创立FigureAxesaxes是咱们绘图的坐标系,figure是咱们绘图的窗口,这也是在Matplotlib非常重要的两个概念;

  • Figure:顶层级,一切图表的容器,咱们能够理解为窗口(Pyecharm等IDE中是弹出的窗口,Jypyter中为内嵌的窗口),一个Figure中能够包括多个Axes;
  • Axes:坐标系,也便是对应咱们画的每一个图表,在Axes咱们能够对图表的坐标轴(axis),刻度值(Tick)等进行操作;
  • figure, axes = plt.subplots() # 创立一个包括一个axes的figure
  • 柱形图plt.bar()
  • 条形图plt.barh()
  • 折线图plt.plot()
  • 面积图plt.stackplot()
  • 饼图plt.pie()
  • 散点图plt.scatter()

数据可视化基础之matplotlib
大约便是这样子,一起咱们要留意假如你用axes做一个坐标系时,plt.bar()便是axes.bar()。当然这些是根底图表没什么美观的,咱们能够经过一些参数来调整咱们的图表使他美观或许更清楚的表达,参数有许多这儿就给咱们探求了,所以咱们来看点美观的,let’s GO.

数据可视化基础之matplotlib

数据可视化基础之matplotlib

数据可视化基础之matplotlib

数据可视化基础之matplotlib

数据可视化基础之matplotlib

图表元素

  • 修正画布尺度plt.figure(figsize=(8, 6))
  • 修正中文字体:Matplotlib中遇到中文显现方块的问题,能够经过plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'解决,咱们还能够设置的中为字体有SimSun(宋体),SimHei(黑体),Kaiti(楷体)等。
  • 增加图表标题:经过plt.title能够在Matplotlib设置标题,字体款式能够经过fontdict进行设置;经过loc参数能够设置标题显现方位,支撑的参数有center(居中),left(靠左),right(靠右)显现。
    • plt.title(“销售趋势图”, fontdict={‘family’:’Microsoft YaHei’, ‘color’: ‘k’, ‘size’: 15}, loc=’left’)
  • 增加坐标轴标题:经过plt.xlabel和plt.ylabel能够别离增加x轴和y轴的标题,相同能够经过fontdict进行字体款式的装备,labelpad能够设置坐标轴与标题之间的间隔。
    • plt.xlabel(“月份”, fontdict={‘family’:’Microsoft YaHei’, ‘color’: ‘k’, ‘size’: 12}, labelpad=10)
  • 增加图例:经过plt.legend能够给图表增加图例,图例一般用来阐明图表中数据每个系列的数据的;经过plt.plot()制作折线的时候,需求经过label参数设置该系列数据的称号,后续才能经过plt.legend增加。
  • 增加数据标签:能够经过plt.text对图表增加文本,但是一次只能增加一个点,所以假如要给每个数据项都增加标签的话,咱们需求经过for循环来进行。plt.text 有三个重要的参数:x、y 、s,经过x和y确认显现方位,s为需求显现的文本,别的还有va和ha两个参数设置文本的显现方位(靠左、靠右、居中等);
    • for a,b in zip(x, y1):
      plt.text(a, b, b, va=’bottom’, fontdict={“size”:14})
  • 增加网格线:经过能够增加网格线能够便利用户简单看出数据项的大致值,经过上述展现一切数据标签时,可能会让整个图表比较凌乱,咱们能够选择运用网格线来展现数据项大致数据值;参数b为True时展现网格线,axis支撑x、y、both三个值,别离表明展现纵向网格线,横向网格线和纵向横向都展现。
    • plt.grid(b=True, axis=’y’, linestyle=’–‘, linewidth=1,)
  • 坐标轴规模:能够经过plt.ylim和plt.xlim别离对y轴和x轴的坐标规模进行装备。
    • plt.ylim(50, 300)
  • 图表风格:Matplotlib中也预制了许多图表的款式风格,能够经过plt.style.use('default')来设置图表的风格,Matplotlib支撑的风格包括26种,不过说实话,我觉得都不咋行挺丑的。

杂乱图表

  • 多图plt.subplot(2, 2, 1)或许axes[0][0].bar(x, y),像上面根底图表的第一张图便是我现画的一张多图。

  • 不均匀子图:咱们能够经过.add_gridspec()将整个画布划分红不均匀的区域。

    • spec = fig.add_gridspec(nrows=2, ncols=2, width_ratios=[1, 3], height_ratios=[1,2]) 表明将整个画布裁剪为2行2列的区域,width_ratios=[1, 3]表明横向将两列的宽度依照1:3进行裁剪,同理height_ratios=[1,2]表明纵向依照1:2进行裁剪。
    • spec还支撑切片的办法,譬如咱们将第二行展现为整个条形图;adjust能够调整各区域之间的间隔。
    • 增加元素:ax子图相同能够经过set_title、set_xlable等办法增加子图标题,坐标轴标题等,假如需求增加大标题能够经过fig.suptitle()来完结;
  • 双Y轴:当咱们多个系列的数据值量级差别太大时,依赖同一个坐标轴来展现一般作用很差,比如需求将销售额和利润一起展现出来;这时候咱们能够经过plt.twix()增加次坐标轴。别的需求留意一点,twinx或许twiny办法会回来一个共享x轴或许y轴的新的axes,假如咱们经过plt.subplots生成ax后,再制作第二个折线图时,需求在这个新生成的ax1上绘图。

  • 增加阴影 path_effects=[path_effects.SimpleLineShadow(),path_effects.Normal()]

  • 增加符号:假如咱们想给图表某部分内容增加一些注释,咱们能够经过plt.annotate()进行增加,其间几个主要参数:

    • xy:需求咱们传入数组,如xy=(1,2),用于定位要符号的方位;

    • xycoords:设置xy是经过何种办法去进行定位,比如data表明运用坐标轴刻度值去进行定位;

    • xytext:提示文本要展现的方位;

    • textcoords:同xycoords,设置xytext经过何种何种办法去进行定位

  • colormap 色表:Matplotlib中内置许多配色办法,能够经过代码matplotlib.cm.get_cmap运用;其实Matplotlib中的配色计划咱们还能够轻松应用到其他第三方模块中;支撑的配色计划能够点击matplotlib.org/2.0.2/examp… 进行查看

数据可视化基础之matplotlib

数据可视化基础之matplotlib

数据可视化基础之matplotlib

数据可视化基础之matplotlib

总结

总的来说,matplotlib很全面很丰富还有许多我没有探求的,值得持续学习,数据可视化之路才刚刚开端,遥看未来我的眼中是斑斓的美,愈加艳丽的画,还有包含其间的数据之美。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。