首页 > 编程知识 正文

用python画图,python画图代码彩虹

时间:2023-05-05 11:54:45 阅读:26283 作者:2439

雷锋网(公众号:雷锋网(新闻)本文是为雷锋字幕组编译的技术博客,原题为Matplotlib Plotting Guide,作者为Prince Grover。

翻译|谨慎翼ykdc整理|凡江

大多数人可以满足绘制的需要,而不用花很多时间学习matplotlib库。 因为已经有人在堆栈溢出、github等开源平台上提供了绘图问题的大多数解决方案。 我们通常使用谷歌来满足绘画的需要。 至少我是这样的。

学习matplotlib库有什么用? 答案是“可以节约搜索时间”。 掌握matplotlib速查表,了解基本界面,根据个人需求从大量资源编辑我们的绘画,长期来看可以节约相当长的时间。

大部分内容来自以下两个链接,建议您也阅读一下。

matplotlib是一个基于Python的二维绘图库,可以在跨平台的各种硬拷贝格式和交互环境中绘制高图形。 很有趣的现象。 为什么参考库总是采用import matplotlib.pyplot as plt方式呢?

例如,使用pylab import *或%pylab是一种非常糟糕的方法,因此matplotlib官方不推荐使用这种方法。 具体理由如下。

出于历史原因,from pylab import *仍然存在,但强烈建议不要这样使用。 这将屏蔽Python的内置函数并占用命名空间,从而导致难以跟踪的bugs。 建议使用%matplotlib命令在零输入下实现IPython集成。 来源: https://matplotlib.org/users/shell.html # using-matplotlib-in-a-python-shell使用matplotlib创建不同类型的图像很容易最重要的是理解最佳的绘制方法。 如何使用axes、subplots等? 这篇文章主要集中在这些问题上。

1 .内联绘制和% matplotlib

%matplotlib命令可以在当前的Notebook上启用绘制。 此命令提供可选参数,用于指定要使用的matplotlib后端。 大多数情况下,Notebook使用inline后台,可以在Notebook中嵌入绘图。 另一个选项是qt后台,在侧窗口中打开Matplotlib交互式UI。

Matlibplot提供了多种绘图UI,可分为弹出窗口和交互界面,以及%matplotlib qt和%matplot tk

非交互式内联绘制: % matplotlib内联

交互式绘制: %matplotlib notebook-->; 请不要用这个。 使开关变得困难。

了解matplotlib对象的结构

pyplot是matplotlib的面向对象函数接口。

plt.gca (

当前打印) )关联的轴

如果不使用plt.close (),则会显示空图表。 因为我最初使用了inline命令。

axis_id保持不变,但移动到另一个Notebook块时,plt.gca ()会发生变化。

Setter和Getter

Getter和Setter方法用于捕获和修改当前或任何axies。 可能需要修改标题、颜色、图形列、字体等。 有两种方法:

使用fig.axes[i]指定要抓住的axes,然后使用setter的getter调用axies对象。 在上面的示例中,只有一个axes,因此调用axes[0]。

可以直接使用plt.bla (调用当前axis。 其中bla是title )、legend )、xlabel )等。 这是matlibplot的面向对象函数。 此函数便于修改当前的axes。 比1的方法更常用。

使用axes[i]时,可以调用上一个代码块中的任何axes对象,但调用plt.bla ()时,将在每个代码块中创建新的axes对象,并且只有当前对象被调用因此,在上例中,只有在调用plt.title ()时,才会创建新的plt对象。

重要信息:通常在当前axis对象上调用plt.bla ()。 此语法将在每个代码块中创建新的axis对象。 但是,可以通过调用fig.axes[0]从任何代码块处理以前的axes对象。

这是stateless(objectoriented )方法,可以自定义。 当图像变得复杂时很有用。

因此,建议使用fig。 ax=PLT.subplots(_ )首先解压缩axes和figure,并将其分配给新变量。 然后,可以对这些变量使用getter和setter方法进行图形中的更改。 此外,这允许您在多个axes上工作,而不仅仅是在一个当前axes上工作。 pyplot使用一次子图制作并使用

OO 方法。

结论:从现在开始,我使用 plt.subpots() 来完成不同的绘图。(如果有人认为这个观点是错误的,请纠正我)

3.matplotlib 图像剖析

4.绘图的基本例子

如何作图的基本例子,涵盖面向对象绘图的各个方面。请仔细阅读。

总结上面的例子:我们创建 1 行和 2 列的图形。即,1 行和 2 列中的 2 个 axes 对象。

我们分别自定义 ax1 和 ax2。可以看到,我们可以将 Y-ticks 移动到右边的第二图形中。

5.二维网格的绘制

subplot2grid

需要做什么?

观察下面的绘图格式。

思路是把上面的图形考虑成为2x4 网格。然后将多个网格分配给单个图以容纳所需的图形。

重点:我们可以使用 subplot2grid 定制我们的绘图布局。

我们可以用 plt.figure() 创建无 axes 对象的图形,然后手动添加 axes 对象。

我们可以使用 fig.suptitle() 来设置整个图形的总标题。

6.颜色,颜色条,RGB 数组和颜色图谱

我们已经介绍了 ax.plot(),ax.scatter(),ax.bar() 和 ax.hist() 等基本图形操作,另一个更常用的函数是 ax.imshow(),它用来显示彩色图或图像/RGB 数组。

7.线条样式和线条宽度

改变线条宽度、颜色或风格。

8.基本的数据分布

EDA 过程中的必要操作。

9.二维数组的等高线图和颜色网格图

热像图(颜色网格图)和等高线图在很多情况下都有助于可视化 2D 数据。

10.图像的调整、修改边缘坐标和标度

最后调整细节,让绘图变得更好看。

11.标度的限制和自动调整

需要注意的事情:填充(padding)自动设置 X 轴或 Y 轴网格标度

我们可以使用 xlim,ylim设置 x,y 的刻度限制

12.技巧

13.轴线

14.结束

雷锋网雷锋网

雷锋网原创文章,未经授权禁止转载。详情见转载须知。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。