matplot笔记

matplot笔记

要点理解

  • matplot和pandas.plot的区别
    • pandas.plot可以一行作图,语法与matplot基本兼容,功能上受限
    • 建议还是要先熟悉matplot,使用时若pandas.plot能解决问题就优先使用
    • pandas.plot类似于lambda函数,虽然功能受限,但是简洁
  • matplot和seaborn的区别
    • 十分钟掌握Seaborn,进阶Python数据可视化分析
    • Seaborn的底层是基于Matplotlib的,把常用到的可视化绘图过程进行了函数封装,形成的一个“快捷方式”,他相比Matplotlib的好处是代码更简洁,可以用一行代码实现一个清晰好看的可视化输出。
    • 使用matplot绘制多数据系列的语法较为繁琐,这种情况下可以使用下Seaborn
    • 内嵌了一些算法模型,可以自动进行拟合与趋势分析
    • 默认的画图效果确实比matplot好看多了,不过网上有人不建议使用seaborn,matplotlib更加灵活

最重要的函数plot

详解pandas.DataFrame.plot() 画图函数

有用的几个功能

  • subplots 多个子图
  • figsize设定图片大小
  • 用中文的要先解决ubuntu下中文乱码的问题
  • 几个常用的概念:
    • tittle 设定标题
    • label plot时对应的标签
    • legend 图例,通过开关把label显示出来,如果label没有设置,legend也无效
    • xticks、yticks 表示刻度
    • grid表示网格
    • rot表示x轴的选择角度

最好的入门材料

官方Usage Guide入门样例

import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()  # Create a figure containing a single axes.
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])  # Plot some data on the axes.

兼容MATLAB的语法

fig = plt.figure()  # an empty figure with no Axes
# plot([1, 2, 3, 4], [1, 4, 2, 3])  % MATLAB plot.
ax= fig.add_subplot( 行,列,位置标)  # 增加一个子图
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])  # Matplotlib plot.

步骤说明:

  • 在画图时,要注意首先定义画图的画布:fig = plt.figure( )
  • 然后定义子图ax ,使用 ax= fig.add_subplot( 行,列,位置标)
  • 当上述步骤完成后,可以用 ax.plot()函数或者 df.plot(ax = ax)
  • 结尾时都注意记录上plt.show()

更简洁的官方样例说明:

  • 第一步和第二步可以合并
  • 在jupyter中交互模型(matplotlib.is_interactive())下不需要执行plt.show就能显示
  • matplot最少2行代码就可以完成。(如果是pandas.plot的话,更简化到一行,当然pandas.plot也是基于matplot的)

重要的样例

参考Sample plots in Matplotlib

  • 最简单的线图
  • 绘制多个子图subplots:注意subplots和subplot的区别,没必要使用subplot
  • 显示图片imshow
  • 轮廓和伪彩色Contouring and pseudocolor
  • 直方图histogram
    • 绘制直方图,就不如用seaborn了
  • 绘制路径、心形图paths
  • 绘制3D
  • 交互类的图,建议还是用pyecharts
  • 流式Streamplot
  • 椭圆ellipse
    • 一般不会用到的
  • 定制条形图
    • 例子太复杂了,这个场景还不如尝试下seaborn呢
  • 饼图
    • 这个例子还挺简单
    • 多维数据用图+表一起显示,内容更丰富
  • 有大小的散点图
  • GUI组件
    • 代码比较多,可以做一些高级视图
  • 填充
  • 时间序列
    • 经常用的东西
  • 指数坐标
    • 经常碰到数据差别比较大的,采用指数坐标可以看得更清楚些
  • 极坐标:
    • 一般没用场景会涉及到
  • 图例legend
    • 与matlab兼容的图例用法
    • ax.plot做图时要先设置label,再通过legend开关是否显示图谱
  • Tex语法:
    • 做图时需要标注公式时,可以通过tex语法把公式写上去
    • 基本不会用到,个别情况下会plot做图,然后再拼接到ppt中
  • XKCD风格
    • 通过with plt.xkcd()实现,其它是一样的
      • python的with是一种上下文管理协议,有一些任务,需要事先做一些设置,事后做一些清理,with能够对这样的需求进行一优雅的处理
    • 打开xkcd_草图样式绘图模式,为了获得最佳效果,应该安装“Humor Sans”字体

axes和axis的区别

发音:坐标系-axes [ 'æksi:z ] 坐标轴axis [ 'æksis ]

python matplotlib中axes与axis的区别是什么?

  • Figure (图窗)
  • Subplot (子图)
  • Axes (笛卡尔坐标区)坐标系
  • Axis (坐标轴)
  • Plot (线图)

官方神图

Matplotlib官方神图,被我画出来了!

引用

  • Overview of seaborn plotting functions

你可能感兴趣的:(matplot笔记)