博客地址:http://www.cnblogs.com/yudanqu/
 
  Matplotlib 是一个 Python 的 2D绘图库,通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。当然他也是可以画出3D图形的,这时就需要安装更多的扩展。相比MATLAB来说,python不需要那么大的安装包,而且最重要的是开源的,在这方面python还是有一定的优势的。
 
下面我将简单梳理一下matplotlib画图的方法,首先把本次需要用到的包导入进来:
 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame

当然,在真正做事情时要根据自己的要求来导入,这里为了示例要导入numpy和pandas。

1、一个简单案例来展示画图的基本命令

 x = np.linspace(0,2*np.pi,100) # 设置横轴变量,从0到2*pi,均分为100份
y = np.sin(x) # 因变量取值 plt.plot(x,y,'b*',label='aaa') # 'b*'表示蓝色*状线,label是指定义图例
plt.plot(x*2,y,'r--',label='bbb') # 'r--'表示红色虚线,
plt.xlabel('this is x') # 设置横轴标签
plt.ylabel('this is y') # 设置纵轴标签
plt.title('this is title') # 设置标题
plt.legend() # 显示上面定义的图例
plt.show() # 展示图像

这样一个简单的绘图就出来了,这里面有两个图形,位于一块画布上,还介绍了一些标签的设置。

2、子图

 plt.subplot(2,1,1) # 子图,(2,1,1)代表,创建2*1的画布,并且定位于画布1 ;等效于plt.subplot(211),即去掉逗号

 a = plt.subplots() # 返回两个对象 figure ax
figure,ax = plt.subplots()
ax.plot([1,2,3,4,5])
plt.show() # 显示图像 # subplots可以传入参数,几行几列
figure,ax = plt.subplots(2,2)
# figure 显示画布,分成2*2的
ax[0][0].plot(x,y)
ax[0][1].plot(x*2,y*2) # 可以分别绘图

3、pandas--Series绘图

先介绍几个常用的参数:

  • plot参数:kind:图像显示的方法,包括'line''bar''barh''hist''box''kde''density''area''pie'.
  • grid=True 表示显示背景的网格
  • label='str',参数里写这个,输出图像之前要协一个plt.legend(),显示图例
  • title='str',显示标题
  • style='--',显示为虚线

plt.legend() # 显示图例,这个上面提到过,没有这个,设置了图例也是不会显示出来的

 # 这是一个小栗子
s1 = Series(np.random.randint(1000).cumsum()) # 创建series,cumsum()是指叠加求和,本位数是前几项之和
s1.plot() # series有自己的plot函数,里面可以写入想要的参数

4、pandas--DataFrame绘图

 df = DataFrame(
np.random.randint(1,10,40).reshape(10,4),
columns=['A','B','C','D']
)
df.plot() # dataframe也有自己的plot,按列画出来,参数包含ax,选择输出的画布
# 参数:stacked=True,表示一个堆叠的情况,同一个index下,columns一不同颜色叠在一起

1、可以取其一行或几行来画图,即将dataftame横过来画:
一行:df.iloc[5].plot() # iloc是pandas里面的一个可以说是切片的命令
多行或全部:for i in df.index:
        df.iloc[i].plot(label=str[i])
        plt.legend()
2、对列画图:
df['A'].plot()

3、对行绘图还有简便方法:
就是对df进行转置,然后再plot ,df.T.plot()

5、直方图和密度图

 # 直方图
s = Series(np.random.randn(1000))
plt.hist(s,rwidth=0.9) # 直方图,rwidth为设置宽度
plt.show()
# hist()的参数:rwidth为宽度;bins=20表示显示的区间,默认是10份;color='r'设置颜色;
 # 密度图
s.plot(kind='kde') # kind='kde'即表示密度图

  今天就大概先总结这些,博主也是初学者,如有不足,请多多指教,希望可以给一些朋友带来帮助,如若觉得我说的太少了,可以查看官方文档https://matplotlib.org/。

  作者:渔单渠

  博客地址:http://www.cnblogs.com/yudanqu/

Python绘图之matplotlib基本语法的更多相关文章

  1. python绘图:matplotlib和pandas的应用

    在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库.1.matplotlib库的应用准备工作如下:打开ipython,输 ...

  2. python绘图工具matplotlib在linux下安装和使用

    工具介绍:matplotlib 是Python编程语言的一个绘图库及其数值数学扩展 NumPy.它为利用通用的图形用户界面工具包, 如Tkinter, wxPython, Qt或GTK+向应用程序嵌入 ...

  3. python 绘图工具 matplotlib 入门

    转自: http://www.cnblogs.com/kaituorensheng/p/3440273.html matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的 ...

  4. Python绘图工具matplotlib的使用(图形并茂)

    matplotlib官网文档: http://matplotlib.org/gallery.html 支持win7_64_bit的matplotlib库下载网址: http://www.lfd.uci ...

  5. 【python笔记】使用matplotlib,pylab进行python绘图

    一提到python绘图,matplotlib是不得不提的python最著名的绘图库,它里面包含了类似matlab的一整套绘图的API.因此,作为想要学习python绘图的童鞋们就得在自己的python ...

  6. python中利用matplotlib绘图可视化知识归纳

    python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...

  7. Python绘图matplotlib

    转自http://blog.csdn.net/ywjun0919/article/details/8692018 Python图表绘制:matplotlib绘图库入门 matplotlib 是pyth ...

  8. 【Python开发】使用python中的matplotlib进行绘图分析数据

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备, ...

  9. Python 中使用 matplotlib 绘图中文字符显示异常的问题

    最近在使用 Python matplotlib 绘制图表时发现中文字符不能正确显示:比如在绘制折线图时,中文全部显示成▢▢▢的格式,虽然将数据改成英文就没什么问题,但是所有数据都这么做时不可行的,于是 ...

随机推荐

  1. Strategy 设计模式 策略模式 超靠谱原代码讲解

    先来假设一种情,我们需要向三种不同的客户做出不同的报价,一般来说要肿么设计呢,是不是马上会想到用IF,没有错,对于这种情况,策略模式是最好的选.大家可以这么理解,如果有情况需要用到大量的IF,那你用策 ...

  2. Leetcode_28_Implement strStr

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41452047 Implement strStr(). Re ...

  3. Android Studio集成Genymotion

    Android Studio集成Genymotion比在Eclipse中集成简单多了.主要以下几个步骤: 1.官网先下载Genymotion:http://www.genymotion.com/,下载 ...

  4. 【一天一道LeetCode】#50. Pow(x, n)

    一天一道LeetCode系列 (一)题目 Implement pow(x, n). (二)解题 题目很简单,实现x的n次方. /* 需要注意一下几点: 1.n==0时,返回值为1 2.x==1时,返回 ...

  5. 开源摄影机:Axiom Camera

    一般情况下只有软件才有开源这个概念.这会儿发现了个很厉害的开源的产品:开源摄影机. 我还是第一次听说摄影机也可以开源.于是去该产品的官方网站了解了一下相关信息. 官网:http://axiom.ape ...

  6. Ext JS 5初探(二) ——Bootstrap.js

    在Bootstrap.js文件中,总共有1500行(包含注释和空行),使用编辑器的代码折叠功能就如下图可以一窥全貌了. 从代码可以看到,这里主要定义了Ext.Boot.Ext.globalEval.E ...

  7. Leetcode_62_Unique Paths

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43404205 A robot is located at ...

  8. getJSONObject与optJSONObject的区别,结合源码分析

    *json解析常见问题: getJSONObject与optJSONObject的区别,下面结合源码和案例来分析当我们使用这两周方法来解析数据时,哪种比较好. 源码分析: //使用getJSONObj ...

  9. AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能

    在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...

  10. Java-ServletRequestWrapper

    /** * * Provides a convenient implementation of the ServletRequest interface that * can be subclasse ...