最近总是需要用matplotlib绘制一些图,由于是新手,所以总是需要去翻书来找怎么用,即使刚用过的,也总是忘。所以,想写一个入门的教程,一方面帮助我自己熟悉这些函数,另一方面有比我还小白的新手可以借鉴,大神就绕路吧。这篇文章是根据《利用Python进行数据分析》总结出来的,不是很全面,但是作为入门,足够了。

首先,需要能启动IPython 交互界面吧,这个如果还没有启动的话,就自行百度吧。

如果安装了Anaconda,那么以这种方式启动IPython吧。

这样会将IPython配置为使用你所指定的matplotlib GUI 后端(Tk,wxPython,PyQt,Mac OS X native,GTK)。【虽然不知道这些都是些什么,不过打开pylab就够用了】

matplotlib 不是太长了吗,我们通常引入这样的约定:

import matplotlib.pyplot as plt

就是个缩写嘛,大多数高端人员也遵循这个约定,咱就服从吧。

首先,我们来绘制一个figure对象。

立马就会生成一个这样的窗口:

好,这是第一步。

但是不能通过空figure绘图。必须使用add_subplot()创建一个或多个subplot才行。

看以上三行代码,figure变成了这样:

这三行代码的意思是:图像是2X2的,且当前选中是4个中的第n个。(222)就是2X2 中的第二2,(2,2,3)就是2X2中的第三个。可分割也可不分割,当超过10的话需要分割了吧。

好,第二步也成功做完了。接下来,发出一条绘图命令。如plt.plot([1.5, 2, 4, -2, 1.6])   #绘制几个点连接

我们来试一下。

恩,此时matplotlib就会在最后一个用过的subplot(如果没有则创建一个)上面进行绘制。

这几步完成的还不错吧,那下面我们再进一步探索。

*************************************************分割线****************************************************

我们运行一下这两行代码:

from numpy.random import randn #导入随机模块
plt.plot(randn(50).cumsum(), 'k--')

其实就是在0到50随机生成一个数组,然后绘制在最后一个用过的subplot里面,注意是线段类型,虚线。

那如何绘制图像在其他的subplot里面呢?下面就演示如何做。

ax1.hist(randn(100), bins  = 20, color = 'k', alpha = 0.3)

ax2.scatter(np.arange(30), np.arange(30)  + 3 * randn(30))

至此,应该能非常熟练的在figure对象中绘图了吧。

还可以在matplotlib的文档中找到各种图表类型。

**********************************************分割线**********************************************************

由于根据特定布局创建Figure和subplot是一件很常见的任务,于是便出现了一个更为方便的方法。

fig, axes = plt.subplots(2, 3)

这样,一步就完成上节两步完成的工作。

-----------------------------------------------------------------------

pyplot.subplots有几个选项

nrows:subplot的行数

ncols:subplot的列数

sharex:所有subplot共享x轴刻度

sharey:所有subplot共享Y轴刻度

subplot_kw:用于创建各subplot的关键字字典

**fig_kw:创建figure时的其他关键字,如plt.subplots(2,2,figuresize=(8,6))

-------------------------------------------------------------------------

加了参数,共享x轴y轴。

我们再试着调整一下subplot周围的边距。

Figure有一个顶级函数subplot_adjust。

subplots_adjust(left = None, bottom = None, right  = None, top = None, wsapce = None, hspace = None )

wspace 和 hspace是控制宽度和高度的百分比。下面将间距收缩到了0.

又是新知识吧。接下来,学习颜色和线型。

************************************分割线**************************************************

新建一个fig

fig = plt.plot()

再新建一个fig

data = randn(30).cumsum()

plt.plot(data, 'k--', label = 'Default')

plt.plot(data, 'k-', drawstyle = 'steps-post', label = 'steps-post')

plt.legend(loc='best')  #在合适的位置放置图例。

设置标题,轴标签,刻度以及刻度标签。

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(randn(1000).cumsum())

随机漫步。我们来给上图添加标签。

ticks = ax.set_xtickets([0, 250, 500, 750, 1000])

可以看出,x标签变成我们制定的标签。y轴标签可想而知了。

再来设置title

ax.set_title('My First matplotlib plot')

再用set_xlabel为X轴设置一个名称。

ax.set_xlabel('Stages')

Y轴的跟X轴几乎是一样的。再小白也能看懂吧。

添加图例(legend):

上面两张图是一样的,后面只是上面图放大了,注意图例的位置。

ax.legend(loc = 'best')  #会选择一个最不碍事的位置。

要从图例中去除一个或多个元素,不传入label或传入lable = '_nolegend_'

还有一些这样的选项。

***************************************************分割线*****************************************************

又上一层楼。 嘻嘻。

好了,一口气写这么些,后面的再慢慢更新吧。

今天接着入门,白小白可以看,大神绕路。

***************************************************分割线*****************************************************

今天接着入门,白小白可以看,大神绕路。

今天以画图开始。

画个长方形,三角形,圆形(椭圆)。

Matplotlib有一些表示常见图形的对象,这些对象被称为块(patch)。完整的集合位于matplotlib.patches。

fig = plt.figure()

ax = fig.add_subplot(111)

rect = plt.Rectangle((0.2,0.75), 0.4, 0.15, color = ‘r’, alpha = 0.3)#左下起点,长,宽,颜色,α

circ = plt.Circle((0.7,0.2), 0.15, color = ‘b’, alpha = 0.5)#圆心,半径,颜色,α

pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]], color = ‘g’, alpha = 0.5 )#顶点坐标颜色α

α表示的是图表的填充不透明度。在(0,1)之间。

ax.add_patch(rect)

ax.add_patch(circ)

ax.add_patch(pgon)

补充一个:如何在图上指定位置添加文本、箭头,或其他图形呢?

答:可以通过text、arrow、annotate等函数进行添加。下面看一个添加文本的例子。

ax.text(0.7, 0.6, ‘Hello World!’, family = ‘monospace’, fontsize = 10)

可以看到图片里面指定位置有我们添加的文字信息。

那生成了图表文件怎么保存呢?

利用plt.savefig可以将当前图表保存到文件。

Plt.savefig(‘figpath.svg’, dpi = 400, bbox_inches = ‘tight’ )

#文件类型是通过文件扩展名推断出来的,可以保存为.pdf.

Dpi是 ‘每英寸点数’分辨率,bbox_inches可以剪除当前图表周围的空白部分

保存到了一个.pdf的文件中。

Figure.savefig有一下选项:

Fname: 含有路径的字符串或python文件型对象。.pdf,.png根据扩展名推断得出。

dpi: 图像分辨率(每英寸点数),默认为100

facecolor,edgecolor: 图像的背景色,默认为‘w’(白色)

format: 显式设置文件格式(‘png’,‘pdf’,‘svg’,‘ps’,‘eps’…)

bbox_inches:图表需要保存的部分。如果设置为‘tight’,则尝试剪除图表周围的空白部分。

***********************分割线********************************

Matplotlib实际上是一种比较低级的绘图工具。要组装一章图表,你得用它的各种基础组件才行。下面介绍一下pandas中的绘图函数。简单入门级别的集中。

************************分割线*******************************

线型图:

Series和DataFrame都有一个用于生成各类图表的plot方法。默认情况下,他们所生成的是线型图。

s = Series(na.random.randn(10).cumsum(), index = np.arange(0,100,10))

s.plot()

IPython绘图和可视化---matplotlib 入门的更多相关文章

  1. IPython绘图和可视化---matplotlib

    1. 启动 IPython 2. >> fig = plt.figure() >> ax1 = fig.add_subplot(346)          # 将画布分割成3行 ...

  2. 绘图和可视化---matplotlib包的学习

    matplotlib API函数都位于matplotlib.pyplot模块,通常引入约定为:import matplotlib.pyplot as plt 1.Figure和Subplot 图像都位 ...

  3. Python 绘图与可视化 matplotlib 制作Gif动图

    参考链接:https://blog.csdn.net/theonegis/article/details/51037850 官方文档:https://matplotlib.org/3.1.0/api/ ...

  4. Python 绘图与可视化 matplotlib(下)

    详细的参考链接:更详细的:https://www.cnblogs.com/zhizhan/p/5615947.html 图像.子图.坐标轴以及记号 Matplotlib中图像的意思是打开的整个画图窗口 ...

  5. Python 绘图与可视化 matplotlib(上)

    参考链接:https://www.cnblogs.com/dudududu/p/9149762.html 更详细的:https://www.cnblogs.com/zhizhan/p/5615947. ...

  6. python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

    除了从文件加载数据,另一个数据源是互联网,互联网每天产生各种不同的数据,可以用各种各样的方式从互联网加载数据. 一.了解 Web API Web 应用编程接口(API)自动请求网站的特定信息,再对这些 ...

  7. Python 绘图与可视化 matplotlib 动态条形图 bar

    bar的参考链接:https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.bar.html 第一种办法 一种方法是每次都重新画,包括清除f ...

  8. Python 绘图与可视化 matplotlib text 与transform

    Text 为plots添加文本或者公式,反正就是添加文本了 参考链接:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html#ma ...

  9. python数据可视化-matplotlib入门(5)-饼图和堆叠图

    饼图常用于统计学模块,画饼图用到的方法为:pie( ) 一.pie()函数用来绘制饼图 pie(x, explode=None, labels=None, colors=None, autopct=N ...

随机推荐

  1. 用python40行代码编写的计算器

    效果图 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...

  2. cs231n神经网络 常用激活函数

    CS231n课程笔记翻译:神经网络笔记1(上) 一.常用激活函数 每个激活函数(或非线性函数)的输入都是一个数字,然后对其进行某种固定的数学操作.下面是在实践中可能遇到的几种激活函数: ——————— ...

  3. Centos7下快速安装Mongo3.2

    Centos7下快速安装Mongo3.2 一般安装Mongo推荐源码安装,有时候为了快部署测试环境,或者仅仅是想装个mongo shell,这时候yum安装是最合适的方式, 下面介绍一下如何在Cent ...

  4. Pascal三角形

    Pascal算法呢,很简单,因为有了推导公式nCr,而当我们刚刚接触一个事物时,面对要解决的问题,归纳分析得到规律,再通过编程,控制流程,对象,语言,方法,属性得到我们想要的结果.如果这次不是PAsc ...

  5. 从SQL Server中清除msdb备份和恢复记录

    正如我在前面的技巧“您的数据库上次恢复是什么时候呢?”中提到的,SQL Server使msdb数据库内系统表中的备份和恢复记录保持激活状态.没有正常的维护,这些系统表将变得很大,从而导致对于msdb数 ...

  6. java实现 数组中两个元素相加等于指定数的所有组合

      package com.algorithm.hash; public class alg1 { public static void main(String argv[]) { int[] arr ...

  7. java基础之集合长度可变的实现原理

    首先我们要明白java中的集合Collection,List,ArrayList之间的关系: ArrayList是具体的实现类,实现了List接口 List是接口,继承了Collection接口 Li ...

  8. java Web jsp嵌入代码的三种方式

    1,表达式标签  <%= 2+3%> 唯一有显示功能的标签 作用: 计算表达式的返回值 将表达式的返回值显示到网页中. 注意: 表达式中不能有分号 2,普通脚本标签  <% %> ...

  9. SpringAOP02 自定义注解

    1 自定义注解 1.1 创建自定义注解 从java5开始就可以利用 @interface 来定义自定义注解 技巧01:注解不能直接干扰程序代码的运行(即:注解的增加和删除操作后,代码都可以正常运行) ...

  10. 7.ORDER BY 子句

    ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录进行排序. 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字. 1 ...