精华内容
下载资源
问答
  • matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作。每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域...
  • matplotlib.pyplot常用画图方式函数封装(一)——.plot绘制折线图及设置坐标轴箭头完美解决py.plot常见绘图设置函数封装绘制函数图像(完美解决坐标轴添加箭头)绘制折线图 py.plot常见绘图设置函数封装 本文主要...
  • 查找资料后,才明白OpenCV里的imshow()和Matplotlib.pyplot的imshow()在使用上有一些区别,不注意的话很容易就会导致很奇怪的结果。 下面的示例代码及运行结果显示了这种差异: import cv2 import matplotlib....
  • 主要介绍了matplotlib.pyplot.plot()参数详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 在代码首行添加: %matplotlib inline 即可。 补充知识:jupyter不能显示Matplotlib 动画 看莫烦老师的matplotlib教程中,有一...import matplotlib.pyplot as plt from matplotlib import animation fig, ax = plt.
  • 主要介绍了Matplotlib.pyplot 三维绘图的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 今天小编就为大家分享一篇matplotlib.pyplot画图并导出保存的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了在pycharm中使用matplotlib.pyplot 绘图时报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇pycharm使用matplotlib.pyplot不显示图形的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python中的matplotlib.pyplot 源码
  • 今天小编就为大家分享一篇matplotlib.pyplot绘图显示控制方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇matplotlib.pyplot画图 图片的二进制流的获取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Matplotlib(https://matplotlib.org/)是一个用来绘图的python库,它的matplotlib.pyplot模块提供了一个与MATLAB非常类似的绘图系统。 绘图(Plotting) matplotlib中最重要的函数就是plot,它可以绘制二维图像,...
  • 使用 matplotlibpyplot模块绘制图形。看一个 绘制sin函数曲线的例子。 import matplotlib.pyplot as plt import numpy as np # 生成数据 x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到 6 的数据* y = np.sin...
  • 最近在学习数据可视化,梳理一下其中一些诸如pandas绘图、matplotlib绘图、pyplot(plt)、axes等概念。 重要的事情说三遍:axes不是axis!axes不是axis!axes不是axis! 重要的事情说三遍:pyplot是接口不是对象!...
  • Pyplot-Fortran 一个简单的模块,可使用Python的matplotlib.pyplot从Fortran生成图。 概述 当前,该模块可用于从Fortran生成简单图。 最终,它可能会被扩展...matplotlib.pyplot.plot线和/或标记的2D / 3D图 matplotl
  • matplotlib.pyplot详解

    热门讨论 2021-04-25 22:58:18
    将画布分成许多区域 设置子图间距 实例 实例 实例 各种图表 折线图 散点图 柱状图 条形图 饼图 箱线图 直方图 图像显示 官方文档 pyplot官方文档链接 导入第三方库 from matplotlib import pyplot as plt 画布和坐标...

    官方文档

    pyplot官方文档链接

    导入第三方库

    from matplotlib import pyplot as plt
    

    画布和坐标轴设置

    设置画布大小和背景

    plt.figure(num=None, figsize=None, dpi=None, facecolor=None,edgecolor=None, frameon=True)

    • num:画布编号或名称,数字为编号 ,字符串为名称
    • figsize:指定figure的宽和高,单位为英寸
    • dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80,1英寸等于2.5cm,A4纸是 21*30cm的纸张
    • facecolor:背景颜色
    • edgecolor:边框颜色
    • frameon:是否显示边框

    设置x和y的坐标范围

    plt.axis([xmin,xmax,ymin,ymax])

    设置y轴坐标范围

    plt.ylim(ymin,ymax)

    设置x轴坐标范围

    plt.xlim(xmin,xmax)

    设置x轴刻度

    plt.xticks()

    设置y轴刻度

    plt.yticks()

    设置图标标题

    plt.title()

    设置图例

    plt.legend(loc)

    显示网格

    plt.gird(alpha)

    保存图片

    plt.savefig()

    实例

    from matplotlib import pyplot as plt
    import numpy as np
    plt.figure(figsize=(3,4.5)) #设置画布大小,默认画布序号为零
    #plt.figure(num=0,figsize=(6,9)) #设置画布大小
    #plt.subplot(111) #默认
    #fig,ax=plt.subplots()
    plt.rcParams['font.family']='MicroSoft YaHei'  #设置字体,默认字体显示不了中文
    
    #linestyle线条样式 ,marker:点的形状,color:颜色 label:图例
    plt.plot(np.linspace(0,6,20),np.linspace(0,8,20),linestyle=':',label='plot',marker='o',color='cyan')
    
    plt.xlim((0,6)) #设置x轴刻度范围
    plt.ylim((0,9)) #设置y轴刻度范围
    plt.yticks(np.linspace(0, 9,10))#设置y轴刻度
    plt.xticks(np.linspace(0, 6,7),['1月','2月','3月','4月','5月','6月','7月'],rotation=45) #设置x轴刻度
    plt.title("折线图")# 设置图表标题
    plt.xlabel('x') #x轴标题
    plt.ylabel('y')#y轴标题
    plt.legend(loc='upper left')# 显示图例
    plt.annotate(text='max', xy=(6, 8), xytext=(4, 4), arrowprops=dict(arrowstyle='->',facecolor='black'),xycoords='data',bbox= dict(boxstyle="round", fc="0.8"))
    plt.show() #显示图表
    

    在这里插入图片描述

    子图

    设置子图(方法1)首选方法

    plt.subplots()

    设置子图(方法2)

    plt.subplot2gird()

    设置子图(方法3)

    plt.axes()

    将画布分成许多区域

    GridSpec()

    设置子图间距

    plt.subplots_adjust()

    实例

    import matplotlib.pyplot as plt
    import numpy as np
    from matplotlib.gridspec import GridSpec
    
    # 创建空白画布
    plt.figure(figsize=(6,8),facecolor="white")  #facecolor设置画布的颜色
    
    # 修改散点图背景颜色
    plt.rcParams["axes.facecolor"] = "white"  #s设置坐标轴颜色
    
    # 调整子图之间的间隔
    plt.subplots_adjust(hspace=0.4,wspace=0.6)
    
    # 分割画布,将画布分割为小单元
    # 将画布划分为5行4列
    gs = GridSpec(5,4)
    
    # 添加第一个子图
    plt.subplot(gs[:3,:3])
    x = np.arange(0, 2*np.pi, 0.1)
    y1 = np.sin(x)
    plt.scatter(x,y1)
    
    # 添加第二个子图
    plt.subplot(gs[:2,3:])
    y2 = np.cos(x)
    plt.scatter(x,y2)
    
    # 添加第三个子图
    plt.subplot(gs[2,3:])
    y3 = np.sin(x)
    plt.scatter(x,y3)
    
    # 添加第四个子图
    plt.subplot(gs[3:,:2])
    y4 = np.cos(x)
    plt.scatter(x,y4)
    
    # 添加第五个子图
    plt.subplot(gs[3:,2:])
    y5 = np.sin(x)
    plt.scatter(x,y5)
    
    plt.suptitle('total')
    plt.show()
    

    在这里插入图片描述

    实例

    import matplotlib.pyplot as plt
    axes1=plt.subplot2grid((3,3),(0,0),colspan=3)
    axes2=plt.subplot2grid((3,3),(1,0),colspan=2)
    axes3=plt.subplot2grid((3,3),(1,2))
    axes4=plt.subplot2grid((3,3),(2,0))
    axes5=plt.subplot2grid((3,3),(2,1),colspan=2)
    plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.5, hspace=0.5)
    plt.suptitle("Demo of subplot2grid")
    plt.show()
    

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    x1 = np.linspace(0.0, 5.0)
    x2 = np.linspace(0.0, 2.0)
    
    y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
    y2 = np.cos(2 * np.pi * x2)
    
    plt.axes([0.14, 0.35, 0.77, 0.6])
    plt.plot(x1, y1, 'yo-')
    
    plt.axes([0.14, 0.05, 0.77, 0.2])
    plt.plot(x2, y2, 'r.-')
    
    plt.show()
    

    实例

    import matplotlib.pyplot as plt
    from pylab import *
    
    x = linspace(0, 5, 10)
    y = x ** 2
    
    fig = plt.figure()
    
    axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])  # left, bottom, width, height (range 0 to 1) 前两个参数表示在figure中的位置
    axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3])  # inset axes
    
    axes.plot(x, y, 'r')  # 参数3 为设置颜色
    
    axes.set_xlabel('x')
    axes.set_ylabel('y')
    axes.set_title('title')
    
    # insert
    axes2.plot(y, x, 'g')
    axes2.set_xlabel('y')
    axes2.set_ylabel('x')
    axes2.set_title('insert title');
    
    plt.show()
    
    

    在这里插入图片描述

    各种图表

    折线图

    plt.plot()

    from matplotlib import pyplot as plt
    import numpy as np
    plt.figure(figsize=(3,4.5)) #设置画布大小,默认画布序号为零
    #plt.figure(num=0,figsize=(6,9)) #设置画布大小
    #plt.subplot(111) #默认
    #fig,ax=plt.subplots()
    plt.rcParams['font.family']='MicroSoft YaHei'  #设置字体,默认字体显示不了中文
    #linestyle线条样式 ,marker:点的形状,color:颜色
    plt.plot(np.linspace(0,6,20),np.linspace(0,8,20),linestyle=':',marker='o',color='cyan',label='plot')   
    plt.xlim((0,6)) #设置x轴刻度范围
    plt.ylim((0,9)) #设置y轴刻度范围
    plt.yticks(np.linspace(0, 9,10))#设置y轴刻度
    plt.xticks(np.linspace(0, 6,7),['1月','2月','3月','4月','5月','6月','7月'],rotation=45) #设置x轴刻度
    plt.title("折线图")# 设置图表标题
    plt.xlabel('x') #x轴标题
    plt.ylabel('y')#y轴标题
    plt.legend(loc='upper left')# 显示图例
    plt.annotate('max', xy=(6, 8), xytext=(4, 4), arrowprops=dict(arrowstyle='->',facecolor='black'),xycoords='data')
    plt.show() #显示图表
    

    在这里插入图片描述

    散点图

    plt.scatter()

    柱状图

    plt.bar()

    import  matplotlib.pyplot as plt
    import numpy as np
    data = [[5,25,50,20],
            [4,23,51,17],
            [6,22,52,19]]
    X = np.arange(4) #四类柱子
    
    
    plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")# 每一类柱子的第一个蓝色柱子
    plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")# X+0.25是因为一个柱子的width是0.25
    plt.bar(X + 0.5, data[2], color = 'r', width = 0.25,label = "C")
    

    在这里插入图片描述

    import  matplotlib.pyplot as plt
    import numpy as np
    data = np.array([[10., 30., 19., 22.],
                    [5., 18., 15., 20.],
                    [4., 6., 3., 5.]])
    color_list = ['b', 'g', 'r']
    ax2 = plt.subplot(111)
    X = np.arange(data.shape[1])
    print(X)
    for i in range(data.shape[0]):#i表示list的索引值
        ax2.bar(X, data[i],
             width=0.2,
             bottom = np.sum(data[:i], axis = 0),
             color = color_list[i % len(color_list)],
                alpha =0.5
                )
    plt.savefig('zhifangtu.png',dpi=120,bbox_inches='tight')
    

    在这里插入图片描述

    条形图

    plt.barh()

    import  matplotlib.pyplot as plt
    import numpy as np
    data = np.linspace(1,50,4)
    plt.barh(range(len(data)),data)
    

    在这里插入图片描述

    饼图

    plt.pie()

    import  matplotlib.pyplot as plt
    
    labels='frogs','hogs','dogs','logs'
    sizes=15,20,45,10
    colors='yellowgreen','gold','lightskyblue','lightcoral'
    explode=0,0.1,0,0
    
    '''
    size:每一部分占总份数的多少份
    explode:每一块分离度
    colors:每一块的颜色 
    autopct:每一块所占比例
    pcdistance:autopct 的显示位置
    shadow:是否有阴影
    startangle:第一块开始的角度
    wedgeprops:每一块的相关参数
    '''
    
    plt.pie(sizes, explode=explode,pctdistance=0.85, labels=labels, radius=1,colors=colors, 
            autopct='%1.1f%%', shadow=False, startangle=90,wedgeprops=dict(width=0.3, edgecolor='w'))
    plt.axis('equal')
    plt.show()
    
    

    在这里插入图片描述

    箱线图

    plt.boxplot()

    直方图

    plt.hist()

    图像显示

    from PIL import Image
    import matplotlib.pyplot as plt
    img = Image.open('images.jpg')
    plt.figure("Image") # 图像窗口名称
    plt.imshow(img)
    plt.axis('on') # 关掉坐标轴为 off
    plt.title('image') # 图像题目
    plt.show()
    

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 数据可视化,用matplotlib.pyplot进行区域填充
  • 代码示例了解用于绘制图形的matplotlib.pyplot接口。 术语 使用指南中的这张图描述了matplotlib图中的所有主要元素: matplotlib 面向对象的Python库进行绘图 图和轴是主要对象 图:包含绘图的“画布”。 它提供...
  • import matplotlib.pyplot as plt ``` 在运行这一行之后,返回了报错: ``` --------------------------------------------------------------------------- ImportError Traceback (most recent call last) ...
  • plt.plot()函数介绍 图线绘制 1.pltplot(x, y) 1.1 x为x轴数据, y为y轴数据 import matplotlib.pyplot as plt x=[3,4,5] # [列表] y=[2,3,2] # x,y元素个数N应相同 plt.plot(x,y) plt.show() 1.2 x, y可传入(元组),...
    点击上方“码农的后花园”,选择“星标” 公众号
    
      精选文章,第一时间送达
    来源:https://zhuanlan.zhihu.com/p/258106097
    

    plt.plot()函数是matplotlib.pyplot模块下的一个函数, 用于画图它可以绘制点和线, 并且对其样式进行控制。

    我们经常用这个模块绘制神经网络模型训练和验证时绘制各种变化曲线,以查看训练情况,下面由浅入深对其介绍和绘制各种点线图、折线图、曲线图等。

    plt.plot()函数介绍

    图线绘制

    1.pltplot(x, y)

    1.1 x为x轴数据, y为y轴数据

    import matplotlib.pyplot as plt
    
    x=[3,4,5] # [列表]
    y=[2,3,2] # x,y元素个数N应相同
    plt.plot(x,y)
    plt.show()
    

    1.2 x, y可传入(元组), [列表], np.array, pd.Series

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    x=(3,4,5) # (元组)
    y1=np.array([3,4,3]) # np.array
    y2=pd.Series([4,5,4]) # pd.Series
    
    plt.plot(x,y1)
    plt.plot(y2)  # x可省略,默认[0,1..,N-1]递增
    plt.show() # plt.show()前可加多个plt.plot(),画在同一张图上
    

    1.3 可传入多组x, y

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    x=(3,4,5)
    y1=np.array([3,4,3])
    y2=pd.Series([4,5,4])
    
    plt.plot(x,y1,x,y2) # 此时x不可省略
    plt.show()
    

     

    1.4 x或y传入pd.DataFrame

    1.4.1 x, y可以不等长, x短

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    dic1={'x列0':[0,1,2],'x列1':[3,4,5]}
    x=pd.DataFrame(dic1)
    dic2={'y列0':[2,3,2],'y列1':[3,4,3],'y列2':[4,5,4],'y列3':[5,6,5]}
    y=pd.DataFrame(dic2)
    print(x)
    print(y)
    plt.plot(x,y)
    plt.show()
    

    x最短可为(元组), [列表], np.array, pd.Series

    1.4.2 x, y可以不等长, x长

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    dic1={'x列0':[0,1,2],'x列1':[3,4,5],'x列2':[6,7,8],'x列3':[9,10,11]}
    x=pd.DataFrame(dic1)
    dic2={'y列0':[2,3,2],'y列1':[3,4,3]}
    y=pd.DataFrame(dic2)
    print(x)
    print(y)
    plt.plot(x,y)
    plt.show()
    

    y最短可为(元组), [列表], np.array, pd.Series

    1.5 x或y传入二维数组

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    lst1=[[0,1,2],[3,4,5],[6,7,8]]
    x=np.array(lst1)
    lst2=[[2,3,2],[3,4,3],[4,5,4]]
    y=np.array(lst2)
    print(x)
    print(y)
    plt.plot(x,y)
    plt.show()
    

    2.plt.plot(x, y, "格式控制字符串")

    点和线的格式可以用"格式控制字符串"设置

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    lst1=[[0,1,2],[3,4,5],[6,7,8]]
    x=np.array(lst1)
    lst2=[[2,3,2],[3,4,3],[4,5,4]]
    y=np.array(lst2)
    
    plt.plot(x,y,"ob:") #"b"为蓝色, "o"为圆点, ":"为点线
    plt.show()
    

    2.1 "格式控制字符串"最多可以包括三部分, "颜色", "点型", "线型"

    2.1.1 "颜色"与"线型"

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    color=['b','g','r','c','m','y','k','w']
    linestyle=['-','--','-.',':']
    dic1=[[0,1,2],[3,4,5]]
    x=pd.DataFrame(dic1)
    dic2=[[2,3,2],[3,4,3],[4,5,4],[5,6,5]]
    y=pd.DataFrame(dic2)
    # 循环输出所有"颜色"与"线型"
    for i in range(2):
        for j in range(4):
            plt.plot(x.loc[i],y.loc[j],color[i*4+j]+line_style[j]) 
    plt.show()
    

    2.1.2 "点型"

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    marker=['.',',','o','v','^','<','>','1','2','3','4','s','p','*','h','H','+','x','D','d','|','_','.',',']
    dic1=[[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17]]
    x=pd.DataFrame(dic1)
    dic2=[[2,3,2.5],[3,4,3.5],[4,5,4.5],[5,6,5.5]]
    y=pd.DataFrame(dic2)
    # 循环输出所有"点型"
    for i in range(6):
        for j in range(4):
            plt.plot(x.loc[i],y.loc[j],"b"+marker[i*4+j]+":") # "b"蓝色,":"点线
    plt.show()
    

    3.plt.plot(x, y, "格式控制字符串", 关键字=参数)

    除了"格式控制字符串", 还可以在后面添加关键字=参数

    import matplotlib.pyplot as plt
    
    y=[2,3,2] 
    # 蓝色,线宽20,圆点,点尺寸50,点填充红色,点边缘宽度6,点边缘灰色
    plt.plot(y,color="blue",linewidth=20,marker="o",markersize=50,
             markerfacecolor="red",markeredgewidth=6,markeredgecolor="grey")
    plt.show()
    

    往期精彩分享:

    论文查找: arXiv,论文阅读:知云文献翻译, 完美组合 !

    什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站…z站?

    更多优质内容?等你点在看

    展开全文
  • Matplotlib.pyplot绘图实例

    千次阅读 2019-06-24 19:38:36
    Matplotlib.pyplot绘图实例 {使用pyplot模块} matplotlib绘制直线、条形/矩形区域 import numpy as np import matplotlib.pyplot as plt t = np.arange(-1, 2, .01) s = np.sin(2 * np.pi * t) plt.plot(t,s) # ...

    Matplotlib.pyplot绘图实例

    {使用pyplot模块}

    matplotlib绘制直线、条形/矩形区域

    import numpy as np
    import matplotlib.pyplot as plt
    t = np.arange(-1, 2, .01)
    s = np.sin(2 * np.pi * t)
     
    plt.plot(t,s)
    # draw a thick red hline at y=0 that spans the xrange
    l = plt.axhline(linewidth=4, color='r')
    plt.axis([-1, 2, -1, 2])
    plt.show()
    plt.close()
     
    # draw a default hline at y=1 that spans the xrange
    plt.plot(t,s)
    l = plt.axhline(y=1, color='b')
    plt.axis([-1, 2, -1, 2])
    plt.show()
    plt.close()
     
    # draw a thick blue vline at x=0 that spans the upper quadrant of the yrange
    plt.plot(t,s)
    l = plt.axvline(x=0, ymin=0, linewidth=4, color='b')
    plt.axis([-1, 2, -1, 2])
    plt.show()
    plt.close()
     
    # draw a default hline at y=.5 that spans the the middle half of the axes
    plt.plot(t,s)
    l = plt.axhline(y=.5, xmin=0.25, xmax=0.75)
    plt.axis([-1, 2, -1, 2])
    plt.show()
    plt.close()
     
    plt.plot(t,s)
    p = plt.axhspan(0.25, 0.75, facecolor='0.5', alpha=0.5)
    p = plt.axvspan(1.25, 1.55, facecolor='g', alpha=0.5)
    plt.axis([-1, 2, -1, 2])
    plt.show()
    效果图展示

    Note: 设置直线对应位置的值显示:plt.text(max_x, 0, str(round(max_x, 2))),也就是直接在指定坐标写文字,不知道有没有其它方法?

    [matplotlib.pyplot.axhline]

    另一种绘制直线的方式

    plt.hlines(hline, xmin=plt.gca().get_xlim()[0], xmax=plt.gca().get_xlim()[1], linestyles=line_style, colors=color)

    直方图

    plt.hist(songs_plays, bins=50,range=(0, 50000), color='lightblue',density=True)

    Note: density是将y坐标按比例绘图,而不是数目。

    hist转换成plot折线图

    plt.hist直接绘制数据是hist图

    plt.hist(z, bins=500, normed=True)
    hist图转换成折线图

    cnts, bins = np.histogram(z, bins=500, normed=True)
    bins = (bins[:-1] + bins[1:]) / 2
    plt.plot(bins, cnts)
    [numpy教程 - 统计函数:histogram]

    散点图、梯形图、柱状图、填充图

    柱状图bar()

    用每根柱子的长度表示值的大小,它们通常用来比较两组或多组值。
    bar()的第一个参数为每根柱子左边缘的横坐标;第二个参数为每根柱子的高度;第三个参数指定所有柱子的宽度,当第三个参数为序列时,可以为每根柱子指定宽度。bar()不自动修改颜色。

    n = np.array([0,1,2,3,4,5])
    x = np.linspace(-0.75, 1., 100)
     
    fig, axes = plt.subplots(1, 4, figsize=(12,3))
     
    axes[0].scatter(x, x + 0.25*np.random.randn(len(x)))
     
    axes[1].step(n, n**2, lw=2)
     
    axes[2].bar(n, n**2, align="center", width=0.5, alpha=0.5)
     
    axes[3].fill_between(x, x**2, x**3, color="green", alpha=0.5);

     


    Note: axes子图设置title: axes.set_title("bar plot")

    分组条形图

    import matplotlib.pyplot as plt
    import numpy as np
    # 构建数据
    Y2016 = [15600,12700,11300,4270,3620]
    Y2017 = [17400,14800,12000,5200,4020]
    labels = ['北京','上海','香港','深圳','广州']
    bar_width = 0.45
     
    # 中文乱码的处理
    plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
    plt.rcParams['axes.unicode_minus'] = False
     
    # 绘图
    plt.bar(np.arange(5), Y2016, label = '2016', color = 'steelblue', alpha = 0.8, width = bar_width)
    plt.bar(np.arange(5)+bar_width, Y2017, label = '2017', color = 'indianred', alpha = 0.8, width = bar_width)
     
    plt.xlabel('Top5城市')
    plt.ylabel('家庭数量')
    plt.title('亿万财富家庭数Top5城市分布')
    plt.xticks(np.arange(5)+bar_width,labels)
    plt.ylim([2500, 19000])
     
    # 为每个条形图添加数值标签
    for x2016,y2016 in enumerate(Y2016):
        plt.text(x2016, y2016+100, '%s' %y2016)
     
    for x2017,y2017 in enumerate(Y2017):
        plt.text(x2017+bar_width, y2017+100, '%s' %y2017)
     
    plt.legend()
    plt.show()

    垂直堆叠条形图

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
     
    data = pd.read_excel('C:\\Users\\Administrator\\Desktop\\货运.xls')
     
    # 绘图
    plt.bar(np.arange(8), data.loc[0,:][1:], color = 'red', alpha = 0.8, label = '铁路', align = 'center')
    plt.bar(np.arange(8), data.loc[1,:][1:],  bottom = data.loc[0,:][1:], color = 'green', alpha = 0.8, label = '公路', align = 'center')
    plt.bar(np.arange(8), data.loc[2,:][1:],  bottom = data.loc[0,:][1:]+data.loc[1,:][1:], color = 'm', alpha = 0.8, label = '水运', align = 'center')
    plt.bar(np.arange(8), data.loc[3,:][1:],  bottom = data.loc[0,:][1:]+data.loc[1,:][1:]+data.loc[2,:][1:], color = 'black', alpha = 0.8, label = '民航', align = 'center')
     
    plt.xlabel('月份')
    plt.ylabel('货物量(万吨)')
    plt.title('2017年各月份物流运输量')
    plt.xticks(np.arange(8),data.columns[1:])
    plt.ylim([0,500000])
     
    # 为每个条形图添加数值标签
    for x_t,y_t in enumerate(data.loc[0,:][1:]):
        plt.text(x_t,y_t/2,'%sW' %(round(y_t/10000,2)),ha='center', color = 'white')
     
    for x_g,y_g in enumerate(data.loc[0,:][1:]+data.loc[1,:][1:]):
        plt.text(x_g,y_g/2,'%sW' %(round(y_g/10000,2)),ha='center', color = 'white') 
     
    for x_s,y_s in enumerate(data.loc[0,:][1:]+data.loc[1,:][1:]+data.loc[2,:][1:]):
        plt.text(x_s,y_s-20000,'%sW' %(round(y_s/10000,2)),ha='center', color = 'white')    
     
    plt.legend(loc='upper center', ncol=4)
    plt.show()
     

     

     

    matplotlib绘制饼图

    plt.figure(figsize=(6,9)) #调节图形大小
    labels = [u'大型',u'中型',u'小型',u'微型'] #定义标签
    sizes = [46,253,321,66] #每块值
    colors = ['red','yellowgreen','lightskyblue','yellow'] #每块颜色定义
    explode = (0,0,0.02,0) #将某一块分割出来,值越大分割出的间隙越大
    patches,text1,text2 = plt.pie(sizes,
                          explode=explode,
                          labels=labels,
                          colors=colors,
                          autopct = '%3.2f%%', #数值保留固定小数位
                          shadow = True, #阴影设置
                          startangle =90, #逆时针起始角度设置
                          pctdistance = 0.6) #数值距圆心半径倍数的距离
    #patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部的文本
    # x,y轴刻度设置一致,保证饼图为圆形
    plt.axis('equal')
    plt.show()
     

     

     

     

    matplotlib 绘制盒状图(Boxplots)和小提琴图(Violinplots)

    盒状图

    import matplotlib.pyplot as plt

    import numpy as np

    all_data = [np.random.normal(0, std, 100) for std in range(1, 4)]

    fig = plt.figure(figsize=(8,6))

    plt.boxplot(all_data,
                notch=False, # box instead of notch shape
                sym='rs',    # red squares for outliers
                vert=True)   # vertical box aligmnent

    plt.xticks([y+1 for y in range(len(all_data))], ['x1', 'x2', 'x3'])
    plt.xlabel('measurement x')
    t = plt.title('Box plot')
    plt.show()

    小提琴图

    plt.violinplot(all_data,
                   showmeans=False,
                   showmedians=True
                   )
     

     

     

    散列图scatter()

    使用plot()绘图时,如果指定样式参数为仅绘制数据点,那么所绘制的就是一幅散列图。但是这种方法所绘制的点无法单独指定颜色和大小。
    scatter()所绘制的散列图却可以指定每个点的颜色和大小。
    scatter()的前两个参数是数组,分别指定每个点的X轴和Y轴的坐标。
    s参数指定点的大 小,值和点的面积成正比。它可以是一个数,指定所有点的大小;也可以是数组,分别对每个点指定大小。
    c参数指定每个点的颜色,可以是数值或数组。这里使用一维数组为每个点指定了一个数值。通过颜色映射表,每个数值都会与一个颜色相对应。默认的颜色映射表中蓝色与最小值对应,红色与最大值对应。当c参数是形状为(N,3)或(N,4)的二维数组时,则直接表示每个点的RGB颜色。
    marker参数设置点的形状,可以是个表示形状的字符串,也可以是表示多边形的两个元素的元组,第一个元素表示多边形的边数,第二个元素表示多边形的样式,取值范围为0、1、2、3。0表示多边形,1表示星形,2表示放射形,3表示忽略边数而显示为圆形。
    alpha参数设置点的透明度。
    lw参数设置线宽,lw是line width的缩写。
    facecolors参数为“none”时,表示散列点没有填充色。

    散点图(改变颜色,大小)

    import numpy as np import matplotlib.pyplot as plt

    N = 50
    x = np.random.rand(N)
    y = np.random.rand(N)
    area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radiuses
    color = 2 * np.pi * np.random.rand(N)
    plt.scatter(x, y, s=area, c=color, alpha=0.5, cmap=plt.cm.hsv)
    plt.show()
     

    matplotlib绘制散点图给点加上注释

    plt.scatter(data_arr[:, 0], data_arr[:, 1], c=class_labels)
    for i, class_label in enumerate(class_labels):
        plt.annotate(class_label, (data_arr[:, 0][i], data_arr[:, 1][i]
     

    对数坐标图

    plot()所绘制图表的X-Y轴坐标都是算术坐标。
    绘制对数坐标图的函数有三个:semilogx()、semilogy()和loglog(),它们分别绘制X轴为对数坐标、Y轴为对数坐标以及两个轴都为对数坐标时的图表。
    下面的程序使用4种不同的坐标系绘制低通滤波器的频率响应曲线。
    其中,左上图为plot()绘制的算术坐标系,右上图为semilogx()绘制的X轴对数坐标系,左下图 为semilogy()绘制的Y轴对数坐标系,右下图为loglog()绘制的双对数坐标系。使用双对数坐标系表示的频率响应曲线通常被称为波特图。
    import numpy as np
    import matplotlib.pyplot as plt

    w = np.linspace(0.1, 1000, 1000)
    p = np.abs(1/(1+0.1j*w)) # 计算低通滤波器的频率响应
    plt.subplot(221)
    plt.plot(w, p, linewidth=2)
    plt.ylim(0,1.5)

    plt.subplot(222)
    plt.semilogx(w, p, linewidth=2)
    plt.ylim(0,1.5)

    plt.subplot(223)
    plt.semilogy(w, p, linewidth=2)
    plt.ylim(0,1.5)

    plt.subplot(224)
    plt.loglog(w, p, linewidth=2)
    plt.ylim(0,1.5)

    plt.show()

     

     

    极坐标图

    极坐标系是和笛卡尔(X-Y)坐标系完全不同的坐标系,极坐标系中的点由一个夹角和一段相对中心点的距离来表示。polar(theta, r, **kwargs)
    可以polar()直接创建极坐标子图并在其中绘制曲线。也可以使用程序中调用subplot()创建子图时通过设 polar参数为True,创建一个极坐标子图,然后调用plot()在极坐标子图中绘图。

    示例1

    fig = plt.figure()
    ax = fig.add_axes([0.0, 0.0, .6, .6], polar=True)
    t = linspace(0, 2 * pi, 100)
    ax.plot(t, t, color='blue', lw=3);
     

     

    示例2

    import numpy as np
    import matplotlib.pyplot as plt

    theta = np.arange(0, 2*np.pi, 0.02)
    plt.subplot(121, polar=True)
    plt.plot(theta, 1.6*np.ones_like(theta), linewidth=2) #绘制同心圆
    plt.plot(3*theta, theta/3, "--", linewidth=2)

    plt.subplot(122, polar=True)
    plt.plot(theta, 1.4*np.cos(5*theta), "--", linewidth=2)
    plt.plot(theta, 1.8*np.cos(4*theta), linewidth=2)
    plt.rgrids(np.arange(0.5, 2, 0.5), angle=45)
    plt.thetagrids([0, 45])

    plt.show()
    Note:rgrids()设置同心圆栅格的半径大小和文字标注的角度。因此右图中的虚线圆圈有三个, 半径分别为0.5、1.0和1.5,这些文字沿着45°线排列。
    Thetagrids()设置放射线栅格的角度, 因此右图中只有两条放射线,角度分别为0°和45°。
     

     

     

    等值线图

    使用等值线图表示二元函数z=f(x,y)

    所谓等值线,是指由函数值相等的各点连成的平滑曲线。等值线可以直观地表示二元函数值的变化趋势,例如等值线密集的地方表示函数值在此处的变化较大。
    matplotlib中可以使用contour()和contourf()描绘等值线,它们的区别是:contourf()所得到的是带填充效果的等值线。
    import numpy as np
    import matplotlib.pyplot as plt

    y, x = np.ogrid[-2:2:200j, -3:3:300j]
    z = x * np.exp( - x**2 - y**2)

    extent = [np.min(x), np.max(x), np.min(y), np.max(y)]

    plt.figure(figsize=(10,4))
    plt.subplot(121)
    cs = plt.contour(z, 10, extent=extent)
    plt.clabel(cs)
    plt.subplot(122)
    plt.contourf(x.reshape(-1), y.reshape(-1), z, 20)
    plt.show()
    为了更淸楚地区分X轴和Y轴,这里让它们的取值范围和等分次数均不相同.这样得 到的数组z的形状为(200, 300),它的第0轴对应Y轴、第1轴对应X轴。
    调用contour()绘制数组z的等值线图,第二个参数为10,表示将整个函数的取值范围等分为10个区间,即显示的等值线图中将有9条等值线。可以使用extent参数指定等值线图的X轴和Y轴的数据范围。
    contour()所返回的是一个QuadContourSet对象, 将它传递给clabel(),为其中的等值线标上对应的值。
    调用contourf(),绘制将取值范围等分为20份、带填充效果的等值线图。这里演示了另外一种设置X、Y轴取值范围的方法,它的前两个参数分别是计算数组z时所使用的X轴和Y轴上的取样点,这两个数组必须是一维的。
     

     

     

    使用等值线绘制隐函数f(x,y)=0曲线

    显然,无法像绘制一般函数那样,先创建一个等差数组表示变量的取值点,然后计算出数组中每个x所对应的y值。

    可以使用等值线解决这个问题,显然隐函数的曲线就是值等于0的那条等值线。
    程序绘制函数在f(x,y)=0和 f(x,y)-0.1 = 0时的曲线。
    import numpy as np
    import matplotlib.pyplot as plt

    y, x = np.ogrid[-1.5:1.5:200j, -1.5:1.5:200j]
    f = (x**2 + y**2)**4 - (x**2 - y**2)**2
    plt.figure(figsize=(9,4))
    plt.subplot(121)
    extent = [np.min(x), np.max(x), np.min(y), np.max(y)]
    cs = plt.contour(f, extent=extent, levels=[0, 0.1], colors=["b", "r"], linestyles=["solid", "dashed"], linewidths=[2, 2])
    plt.subplot(122)
    for c in cs.collections:
        data = c.get_paths()[0].vertices
        plt.plot(data[:,0], data[:,1], color=c.get_color()[0], linewidth=c.get_linewidth()[0])

    plt.show()
     

     

    contour() levels参数指定所绘制等值线对应的函数值,这里设置levels参数为[0,0.1],因此最终将绘制两条等值线。
    观察图会发现,表示隐函数f(x)=0蓝色实线并不是完全连续的,在图的中间部分它由许多孤立的小段构成。因为等值线在原点附近无限靠近,因此无论对函数f的取值空间如何进行细分,总是会有无法分开的地方,最终造成了图中的那些孤立的细小区域。

    而表示隐函数f(x,y)=0的红色虚线则是闭合且连续的。
     

     

    contour()返回对象QuadContourSet

    可以通过contour()返回对象获得等值线上每点的数据,下面我们在IPython中观察变量cs,它是一个 QuadContourSet 对象:
    cs对象的collections属性是一个等值线列表,每条等值线用一个LineCollection对象表示:
    >>> cs.collections
    <a list of 2 collections.LineCollection objects>
    每个LineCollection对象都有它自己的颜色、线型、线宽等属性,注意这些属性所获得的结果外面还有一层封装,要获得其第0个元素才是真正的配置:
    >>> c0.get_color()[0]
    array([ 0., 0., 1., 1.])
    >>> c0.get_linewidth()[0]
    2
    由类名可知,LineCollection对象是一组曲线的集合,因此它可以表示像蓝色实线那样由多条线构成的等值线。它的get_paths()方法获得构成等值线的所有路径,本例中蓝色实线
    所表示的等值线由42条路径构成:
    >>> len(cs.collections[0].get_paths())
    42
    路径是一个Path对象,通过它的vertices属性可以获得路径上所有点的坐标:
    >>> path = cs.collections[0].get_paths()[0]
    >>> type(path)
    <class 'matplotlib.path.Path'>
    >>> path.vertices
    array([[-0.08291457, -0.98938936],
    [-0.09039269, -0.98743719],
    …,
    [-0.08291457, -0.98938936]])
    上面的程序plt.subplot(122)就是从等值线集合cs中找到表示等值线的路径,并使用plot()将其绘制出来。
     

     

    Matplotlib.pylab绘图实例

    {使用pylab模块}

    matplotlib还提供了一个名为pylab的模块,其中包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用。这里使用下面的方式载入pylab模块:

    >>> import pylab as pl
    Note:import pyplot as plt也同样可以
    两种常用图类型
    Line and scatter plots(使用plot()命令), histogram(使用hist()命令)

    1 折线图&散点图 Line and scatter plots

    折线图 Line plots(关联一组x和y值的直线)

    import pylab as pl
     
    x = [1, 2, 3, 4, 5]# Make an array of x values
    y = [1, 4, 9, 16, 25]# Make an array of y values for each x value
     
    pl.plot(x, y)# use pylab to plot x and y
    pl.show()# show the plot on the screen
     

     

    image

     


    plot(x, y)        # plot x and y using default line style and color
    plot(x, y, 'bo')  # plot x and y using blue circle markers
    plot(y)           # plot y using x as index array 0..N-1
    plot(y, 'r+')     # ditto, but with red plusses
     

    plt.plot(ks, wssses, marker='*', markerfacecolor='r', linestyle='-', color='b')
     

     散点图 Scatter plots

    把pl.plot(x, y)改成pl.plot(x, y, 'o')
     

     

    image

     

     

    美化 Making things look pretty

    线条颜色 Changing the line color

    红色:把pl.plot(x, y, 'o')改成pl.plot(x, y, ’or’)

    线条样式 Changing the line style

    虚线:plot(x,y, '--')

    marker样式 Changing the marker style

    蓝色星型markers:plot(x,y, ’b*’)

    具体见附录 - matplotlib中的作图参数

     

    图和轴标题以及轴坐标限度 Plot and axis titles and limits

     

    import numpy as np
    import pylab as pl
     
    x = [1, 2, 3, 4, 5]# Make an array of x values
    y = [1, 4, 9, 16, 25]# Make an array of y values for each x value
    pl.plot(x, y)# use pylab to plot x and y
     
    pl.title(’Plot of y vs. x’)# give plot a title
    pl.xlabel(’x axis’)# make axis labels
    pl.ylabel(’y axis’)
     
    pl.xlim(0.0, 7.0)# set axis limits
    pl.ylim(0.0, 30.)
     
    pl.show()# show the plot on the screen
     

     

    image

     

     一个坐标系上绘制多个图 Plotting more than one plot on the same set of axes

    依次作图即可

    import numpy as np
    import pylab as pl 
    x1 = [1, 2, 3, 4, 5]# Make x, y arrays for each graph
    y1 = [1, 4, 9, 16, 25]
    x2 = [1, 2, 4, 6, 8]
    y2 = [2, 4, 8, 12, 16]
     
    pl.plot(x1, y1, ’r’)# use pylab to plot x and y
    pl.plot(x2, y2, ’g’)
     
    pl.title(’Plot of y vs. x’)# give plot a title
    pl.xlabel(’x axis’)# make axis labels
    pl.ylabel(’y axis’) 
     
    pl.xlim(0.0, 9.0)# set axis limits
    pl.ylim(0.0, 30.) 
     
    pl.show()# show the plot on the screen
     

     

    image

     

    图例 Figure legends

    pl.legend((plot1, plot2), (’label1, label2’),loc='best’, numpoints=1)

    第三个参数loc=表示图例放置的位置:'best’‘upper right’, ‘upper left’, ‘center’, ‘lower left’, ‘lower right’.如果在当前figure里plot的时候已经指定了label,如plt.plot(x,z,label="cos(x2)"),直接调用plt.legend()就可以了。

    import pylab as pl
     
    x1 = [1, 2, 3, 4, 5]  # Make x, y arrays for each graph
    y1 = [1, 4, 9, 16, 25]
    x2 = [1, 2, 4, 6, 8]
    y2 = [2, 4, 8, 12, 16]
     
    plot1 = pl.plot(x1, y1, 'r')  # use pylab to plot x and y : Give your plots names
    plot2 = pl.plot(x2, y2, 'go')
     
    pl.title('Plot of y vs. x')  # give plot a title
    pl.xlabel('x axis')  # make axis labels
    pl.ylabel('y axis')
     
    pl.xlim(0.0, 9.0)  # set axis limits
    pl.ylim(0.0, 30.)
     
    pl.legend([plot1, plot2], ('red line', 'green circles'), 'best', numpoints=1)  # make legend
    pl.show()  # show the plot on the screen
     

     

    image

     

    2 直方图 Histograms

    import numpy as np
    import pylab as pl
     
    # make an array of random numbers with a gaussian distribution with
    # mean = 5.0
    # rms = 3.0
    # number of points = 1000
    data = np.random.normal(5.0, 3.0, 1000)
     
    # make a histogram of the data array
    pl.hist(data)
     
    # make plot labels
    pl.xlabel('data')
    pl.show()
    如果不想要黑色轮廓可以改为pl.hist(data, histtype=’stepfilled’)
    image

    自定义直方图bin宽度 Setting the width of the histogram bins manually

    增加两行

    bins = np.arange(-5., 16., 1.) #浮点数版本的range
    pl.hist(data, bins, histtype=’stepfilled’)
    image

    绘制

     

    同一画板上绘制多幅子图 Plotting more than one axis per canvas

    如果需要同时绘制多幅图表的话,可以是给figure传递一个整数参数指定图标的序号,如果所指定
    序号的绘图对象已经存在的话,将不创建新的对象,而只是让它成为当前绘图对象。

    fig1 = pl.figure(1)
    pl.subplot(211)
    subplot(211)把绘图区域等分为2行*1列共两个区域, 然后在区域1(上区域)中创建一个轴对象. pl.subplot(212)在区域2(下区域)创建一个轴对象。
    image

     

    You can play around with plotting a variety of layouts. For example, Fig. 11 is created using the following commands:

    f1 = pl.figure(1)
    pl.subplot(221)
    pl.subplot(222)
    pl.subplot(212)
     

    image

     

    当绘图对象中有多个轴的时候,可以通过工具栏中的Configure Subplots按钮,交互式地调节轴之间的间距和轴与边框之间的距离。如果希望在程序中调节的话,可以调用subplots_adjust函数,它有left, right, bottom, top, wspace, hspace等几个关键字参数,这些参数的值都是0到1之间的小数,它们是以绘图区域的宽高为1进行正规化之后的坐标或者长度。

    pl.subplots_adjust(left=0.08, right=0.95, wspace=0.25, hspace=0.45)
     

    绘制圆形Circle和椭圆Ellipse

    1. 调用包函数

    ###################################
    #   coding=utf-8
    #   !/usr/bin/env python
    #   __author__ = 'pipi'
    #   ctime 2014.10.11
    #   绘制椭圆和圆形
    ###################################
    from matplotlib.patches import Ellipse, Circle
    import matplotlib.pyplot as plt
     
    fig = plt.figure()
    ax = fig.add_subplot(111)
     
    ell1 = Ellipse(xy = (0.0, 0.0), width = 4, height = 8, angle = 30.0, facecolor= 'yellow', alpha=0.3)
    cir1 = Circle(xy = (0.0, 0.0), radius=2, alpha=0.5)
    ax.add_patch(ell1)
    ax.add_patch(cir1)
     
    x, y = 0, 0
    ax.plot(x, y, 'ro')
     
    plt.axis('scaled')
    # ax.set_xlim(-4, 4)
    # ax.set_ylim(-4, 4)
    plt.axis('equal')   #changes limits of x or y axis so that equal increments of x and y have the same length
     
    plt.show()
    参见Matplotlib.pdf Release 1.3.1文档

    p187

    18.7 Ellipses (see arc)

    p631class matplotlib.patches.Ellipse(xy, width, height, angle=0.0, **kwargs)Bases: matplotlib.patches.PatchA scale-free ellipse.xy center of ellipsewidth total length (diameter) of horizontal axisheight total length (diameter) of vertical axisangle rotation in degrees (anti-clockwise)p626class matplotlib.patches.Circle(xy, radius=5, **kwargs)

    或者参见Matplotlib.pdf Release 1.3.1文档contour绘制圆

    #coding=utf-8
    import numpy as np
    import matplotlib.pyplot as plt
     
    x = y = np.arange(-4, 4, 0.1)
    x, y = np.meshgrid(x,y)
    plt.contour(x, y, x**2 + y**2, [9])     #x**2 + y**2 = 9 的圆形
     
    plt.axis('scaled')
    plt.show()
    p478
    Axes3D.contour(X, Y, Z, *args, **kwargs)
    Create a 3D contour plot.
    Argument Description
    X, Y, Data values as numpy.arrays
    Z
    extend3d
    stride
    zdir
    offset
    Whether to extend contour in 3D (default: False)
    Stride (step size) for extending contour
    The direction to use: x, y or z (default)
    If specified plot a projection of the contour lines on this position in plane normal to zdir
    The positional and other

    p1025

    matplotlib.pyplot.axis(*v, **kwargs)
    Convenience method to get or set axis properties.

    或者参见demo【pylab_examples example code: ellipse_demo.py】

    2. 直接绘制

    #coding=utf-8
    '''
    Created on Jul 14, 2014
    @author: pipi
    '''
    from math import pi
    from numpy import cos, sin
    from matplotlib import pyplot as plt
     
    if __name__ == '__main__':    
        '''plot data margin'''
        angles_circle = [i*pi/180 for i in range(0,360)]                 #i先转换成double
        #angles_circle = [i/np.pi for i in np.arange(0,360)]             # <=> 
        # angles_circle = [i/180*pi for i in np.arange(0,360)]    X
        x = cos(angles_circle)
        y = sin(angles_circle)
        plt.plot(x, y, 'r')
        
        plt.axis('equal')
        plt.axis('scaled')
        plt.show()
     

    绘图小技巧

    控制坐标轴的显示——使x轴显示名称字符串而不是数字的两种方法

    plt.xticks(range(len(list)), x, rotation='vertical')

    Note:x代表一个字符串列表,如x轴上要显示的名称。

    axes.set_xticklabels(x, rotation='horizontal', lod=True)

    Note:这里axes是plot的一个subplot()

    [控制坐标轴的显示——set_xticklabels]

    获取x轴上坐标最小最大值

    xmin, xmax = plt.gca().get_xlim()

    在指定坐标写文字

    plt.text(max_x, 0, str(round(max_x, 2)))
     

    展开全文
  • import matplotlib.pyplot as plt import numpy as np def samplemat(dims): Make a matrix with all zeros and increasing elements on the diagonal aa = np.zeros(dims) for i in range(min(dims)): aa[i, i]...
  • 解决方法:在绘图命令前加pyplot.cla()清除上一个坐标轴或者pyplot.close()直接关闭上一个图表重新制图 更改后: from random import choice as choice import matplotlib.pyplot as plt for i in range(10): class...
  • Py之matplotlib.pyplotmatplotlib.pyplot的plt.legend函数的简介、使用方法之详细攻略 目录 matplotlib.pyplot的plt.legend函数的简介 1、参数解释 2、源代码 matplotlib.pyplot的plt.legend函数的...

    Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介、使用方法之详细攻略

     

     

     

     

    目录

    matplotlib.pyplot的plt.legend函数的简介

    1、参数解释

    2、源代码

    matplotlib.pyplot的plt.legend函数的使用方法

    1、基础用法


     

     

    matplotlib.pyplot的plt.legend函数的简介

              legend模块定义了legend类,负责绘制与轴和/或图形相关的图例。Legend类是一个图例句柄和图例文本的容器,该函数是用来给当前图像添加图例内容。大多数用户通常会通过图例函数创建图例。图例处理程序映射指定如何在轴或图形中从artists(线、补丁等)创建图例句柄。默认的图例处理程序定义在legend_handler模块中。虽然默认的图例处理程序并没有覆盖所有的artists类型,但是可以定义自定义图例处理程序来支持任意对象。

    plt.legend(loc='best',frameon=False)    #frameon参数,去掉图例边框
    plt.legend(loc='best',edgecolor='blue') #edgecolor参数,设置图例边框颜色
    plt.legend(loc='best',facecolor='blue') #facecolor参数,设置图例背景颜色,若无边框,参数无效
    plt.legend(["CH", "US"], title='China VS Us')    #设置图例标题
    plt.legend([p1, p2], ["CH", "US"])               #设置图例名字及对应关系
    

     

    原始文档https://matplotlib.org/api/legend_api.html?highlight=legend#module-matplotlib.legend

     

    1、参数解释

    参数解释具体应用
    loc

    Location code string, or tuple (see below).图例所有figure位置

    plt.legend(loc='upper center')
    0: ‘best'
    1: ‘upper right'
    2: ‘upper left'
    3: ‘lower left'
    4: ‘lower right'
    5: ‘right'
    6: ‘center left'
    7: ‘center right'
    8: ‘lower center'
    9: ‘upper center'
    10: ‘center'
    propthe font property字体参数 
    fontsizethe font size (used only if prop is not specified)

    fontsize : int or float or {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}

    markerscalethe relative size of legend markers vs. original

    图例标记与原始标记的相对大小

     
    markerfirstIf True (default), marker is to left of the label.

    如果为True,则图例标记位于图例标签的左侧

     
    numpointsthe number of points in the legend for line

    为线条图图例条目创建的标记点数

     
    scatterpointsthe number of points in the legend for scatter plot

    为散点图图例条目创建的标记点数

     
    scatteryoffsetsa list of yoffsets for scatter symbols in legend

    为散点图图例条目创建的标记的垂直偏移量

     
    frameonIf True, draw the legend on a patch (frame).

    控制是否应在图例周围绘制框架

     
    fancyboxIf True, draw the frame with a round fancybox.

    控制是否应在构成图例背景的FancyBboxPatch周围启用圆边

     
    shadowIf True, draw a shadow behind legend.

    控制是否在图例后面画一个阴

     
    framealphaTransparency of the frame.

    控制图例框架的 Alpha 透明度

     
    edgecolorFrame edgecolor. 
    facecolorFrame facecolor. 
    ncolnumber of columns 设置图例分为n列展示 
    borderpadthe fractional whitespace inside the legend border

    图例边框的内边距

     
    labelspacingthe vertical space between the legend entries

    图例条目之间的垂直间距

     
    handlelengththe length of the legend handles 

    图例句柄的长度

     
    handleheightthe height of the legend handles 

    图例句柄的高度

     
    handletextpadthe pad between the legend handle and text 

    图例句柄和文本之间的间距

     
    borderaxespadthe pad between the axes and legend border

    轴与图例边框之间的距离

     
    columnspacingthe spacing between columns 列间距 
    titlethe legend title 
    bbox_to_anchorthe bbox that the legend will be anchored.指定图例在轴的位置 
    bbox_transformthe transform for the bbox. transAxes if None. 

     

    2、源代码

    更新……

     

    def legend Found at: matplotlib.pyplot
    
    @_copy_docstring_and_deprecators(Axes.legend)
    def legend(*args, **kwargs):
        return gca().legend(*args, **kwargs)
    
    # Autogenerated by boilerplate.py.  Do not edit as changes will be lost.

     

     

     


    matplotlib.pyplot的plt.legend函数的使用方法

    1、基础用法

        plt.figure() 
        col_cou_len=len(Keys)
        plt.pie(x=Values,labels=Keys,colors=cols[:col_cou_len], startangle=90,shadow=True,autopct='%1.3f%%') 
        plt.title(tit_name)
        plt.legend()
        plt.show()

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 220,957
精华内容 88,382
关键字:

matplotlib.pyplot