精华内容
下载资源
问答
  • plt
    千次阅读
    2022-03-17 18:57:26

    1 plt.figure() :创建画布

    plt.figure(num=None, figsize=None, facecolor=None, edgecolor=None, clear=False, )

    num:画布序号,一般默认是从1递增

    figsize=(长,宽):画布尺寸,常用

    facecolor:背景色,默认白色

    edgecolor:边缘色,默认白色

    clear:是否清除原来的画布,默认False自动创建新画布

    2 plt.subplot() :创建子图

    plt.subplot(numRows, numCols, plotNum)

    numRows:行数

    numCols:列数,画布被分成numRows行和numCols列

    plotNum:按照从左到右,从上到下的顺序对每个子图进行编号。 该参数可以指定画图区域。

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y1 = [1, 2, 3, 4]
    y2 = [1, 4, 9, 16]
    y3 = [2, 6, 6, 8]
    y4 = [1, -3, 5, 7]
    plt.figure()
    plt.subplot(221)
    plt.plot(x, y1, 'r')
    plt.subplot(222)
    plt.plot(x, y2)
    plt.subplot(223)
    plt.plot(x, y3,'g')
    plt.subplot(224)
    plt.plot(x, y4,'y')
    plt.show()

     

    3 plt.subplots_adjust():调整子图间的距离

    plt.subplots_adjust(left=None, bottom=None, right=None, top=None,
                    wspace=None, hspace=None)

    left:默认为0.125,子图(subplot)距画板(figure)左边的距离 

    right:默认为0.9,子图(subplot)距画板(figure)右边的距离

    bottom:默认为0.1,子图(subplot)距画板(figure)底部的距离

    top:默认为0.9,子图(subplot)距画板(figure)顶部的距离

    wspace:默认为0.2,子图水平间距

    hspace:默认为0.2,子图垂直间距

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y1 = [1, 2, 3, 4]
    y2 = [1, 4, 9, 16]
    y3 = [2, 6, 6, 8]
    y4 = [1, -3, 5, 7]
    plt.figure()
    plt.subplot(221)
    plt.plot(x, y1, 'r')
    plt.subplot(222)
    plt.plot(x, y2)
    plt.subplot(223)
    plt.plot(x, y3,'g')
    plt.subplot(224)
    plt.plot(x, y4,'y')
    plt.subplots_adjust(hspace=0.5, wspace=0.5)
    plt.show()

          

    4 plt.plot():画图

    plt.plot(x, y, linestyle, color, linewidth, label)

    x,y:分别是x轴数据和y轴数据、linestyle:线条类型、color:颜色(默认值为蓝色'b')、linewidth:线宽度、label:曲线标签,后使用plt.legend( )创建图例。

    import matplotlib.pyplot as plt
    y = [1, 2, 20, 50]
    plt.figure()
    plt.plot(y) #只给y时,x默认为range(len(y)),即0、1、2、3...len(y)-1
    plt.show()

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y1 = [1, 2, 3, 4]
    y2 = [1, 4, 9, 16]
    plt.figure()
    plt.plot(x, y1) #同一个图画多条曲线
    plt.plot(x, y2) #可看出绘制多条线条时,系统会自动更改线条颜色,第一个默认值为蓝色'b'
    plt.show()

    import matplotlib.pyplot as plt 
    x = [1, 2, 3, 4]
    y1 = [1, 2, 3, 4]
    y2 = [1, 4, 9, 16]
    y3 = [1, 8, 27, 64]
    y4 = [1, 16, 81, 124]
    plt.figure()             
    plt.plot(x, y1, linestyle='-')  #实线
    plt.plot(x, y2, linestyle='--') #虚线
    plt.plot(x, y3, linestyle='-.') #折点线
    plt.plot(x, y4, linestyle=':')  #点线
    plt.show()
    

     

    5 plt.scatter():绘制散点图

    plt.scatter(x, y, s=None)

    x,y:散点的坐标、s:散点的面积、color:散点的颜色(默认值为蓝色'b')

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y = [1, 2, 20, 50]
    plt.figure()
    plt.scatter(x, y, s=10)
    plt.show()

    6 plt.legend():创建图例

    在plt.plot()里添加label属性后,可调用plt.legend(),产生legend

    plt.xlabel(' '):在横坐标添加标签

    字符串中不可以包含中文

    plt.title(' '):增加主题

    字符串中不可以包含中文

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y = [1, 2, 20, 50]
    plt.figure()
    plt.plot(x, y,label='line1')
    plt.legend()          #创建图例
    plt.xlabel("X axis")  #x轴标签
    plt.ylabel("Y axis")  #y轴标签
    plt.title("figure1")  #主题
    plt.show()

     

    9 plt.savefig( ):将图表保存到文件中

    plt.savefig('存储位置'+'照片名'+'.照片类型')

    10 plt.show( ):展现画布

    数据分析-03 - 简书

    进阶学习

    更多相关内容
  • 柱状图plt.bar 同一柱状图堆叠显示plt.pivot()+plt.bar(bottom=) 对于不同季度,不同产品的质量评价显示,先将使用的数据内容通过pd.pivot_table()进行数据筛选,重新设置了索引列和列标题(columns),再对数据使用...

    柱状图plt.bar

    同一柱状图堆叠显示plt.pivot()+plt.bar(bottom=)

    对于不同季度,不同产品的质量评价显示,先将使用的数据内容通过pd.pivot_table()进行数据筛选,重新设置了索引列和列标题(columns),再对数据使用柱状图显示

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
    print(data)
    #解决中文乱码问题
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus']=False
    plt.figure(figsize=(6.4,4.8))#设置图片背景的参数
    print('下面是整理后的数据:==========')
    #通过pivot_table函数重新提取数据两列作为(data)索引列和横向的列名(columns),另外的vlues对应的是数列,注意的是,尽量让索引是和数字有关的序列,可自动排序
    over_view=pd.pivot_table(data=data,index='Q',columns='GOODS',values='QUA',aggfunc=np.sum)
    print(over_view)
    #使用tick_label对x轴的标签重新赋值
    plt.bar(x= over_view.index.values,height=over_view.,color='green',tick_label=['第一季度','第二季度','第三季度','第四季度'] )
    plt.bar(x= over_view.index.values,height=over_view.,bottom=over_view.,color='red')
    plt.bar(x= over_view.index.values,height=over_view.,bottom=over_view.+over_view.,color='orange')
    plt.xticks(rotation=45)	#x轴上的标签旋转45度
    plt.ylabel('质量分数',fontsize=20,labelpad=20)
    plt.show()
    

    在这里插入图片描述
    通过上边的程序和运行结果,得出一下几点注意,
    1、索引尽量使用能够数字排序的字符,可自动排序,到最后只需使用plt.bar(tick_label=[ ])修改横坐标的标签字符即可
    2、建立直方图时,使用的数据是自己处理后的变量索引和column,而且处理数据一般使用np.sum(),记录一类数量。
    3、为了显示的图形不会出现遮挡,需要使用到plt.bar(bottom=),将想要放在下边的数据作为值传入,若不使用,每次图形的最低端都是以横轴开始计算,若出现完全遮挡,则图形无意义
    上例中,每个季度,三个产品的服务质量评分。让季度和物品名称(甲乙丙)作为横纵参数,服务质量分数作为数据显示

    同一柱状图堆叠显示plt.crosstab(nomalize=)+plt.bar(bottom=)

    堆叠显示,对数据选择并单位化,可以明显看出,每个阶段数据量占的百分比
    而且再使用bar绘制图形时,要设置label属性的值,否则,使用plt.legend时会出现问题
    plt.legend()的显示位置不合适,可以通过plt.legend()中的bbox_to_anchor=(坐标),认为图形的右上角是(1,1),可设置(1.01,0.8)将内容注释放在图像外部

    #前面和上个程序一样
    over_view=pd.crosstab(data.Q,data.GOODS,normalize='index', values=data.QUA,aggfunc=np.sum,)
    print(over_view)
    plt.bar(x= over_view.index.values,height=over_view.,color='green',label='甲',tick_label=['第一','第二','第三','第四'] )
    plt.bar(x= over_view.index.values,height=over_view.,bottom=over_view.,label='乙',color='red')
    plt.bar(x= over_view.index.values,height=over_view.,label='丙',bottom=over_view.+over_view.,color='orange')
    plt.xticks(rotation=45)#旋转横坐标标签
    plt.ylabel('质量分数',fontsize=20,labelpad=20)
    plt.legend(bbox_to_anchor=(1.01,0.8))
    plt.show()
    

    在这里插入图片描述
    程序解析:这个程序及绘制的图形是通过pd.crosstab( )将数据的每一行(也就是index的每行)归一化

    直方图plt.hist

    正态分布函数,下面函数返回对应的计算正态频率值输出

    def zhengtai_func(x,miu,sigma):
        zhen_y=np.exp(-(x-miu)**2/(2*(sigma**2)))/(sigma*np.sqrt(2*np.pi))
        return zhen_y
    

    正态计算公式;
    在这里插入图片描述

    data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
    print(data)
    #解决中文乱码问题
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus']=False
    
    #删除数据中缺失项,计算数据的均值,标准差,和正态分布频率点
    data.dropna(subset=['人数'],inplace=True)
    print(data)
    #x_mean=np.mean(data.人数) #与下一行数据功能相同
    x_mean=data.人数.mean()
    x_std=np.std(data.人数)
    x=np.arange(data.人数.min(),data.人数.max(),0.1)
    y=zhengtai_func(x,x_mean,x_std)
    
    #显示直方图,核密度图,设置注释标签label                      
    plt.hist(x=data.人数,bins=5,color='lightblue',label='年龄频率',\
             edgecolor='orange',density=True)
    plt.plot(x,y,color='red',linewidth=3,label='正态分布线')
    data.人数.plot(kind='kde',color="black",xlim=[0,10],label='核密度图')
    plt.xlabel('不同年龄',fontsize=15,labelpad=20)
    plt.title('年龄频率分布图',fontsize=25,pad=25)
    plt.legend(loc='best')
    plt.show()
    

    在这里插入图片描述
    程序及图形解析:
    1、先定义了正态分布的概率计算,参数分别是,数据x,平均值x_mean,标准差x_std,返回计算的概率值,
    2、然后读取数据,data.dropna( )删除缺失数据行,计算数据均值,标准差,取多个x值,通过正态公式显示成线,(使用数据的平均值和标准差就确定了数据的正态概率分布图)。
    3、绘制直方图plt.hist( ),正态分布线plt.plot( x,y),核密度分布线data.plot(kind=‘kde’)、
    4、核密度分布和正态分布区别:核密度分布和数据的每阶段的关系更大,正态分布确定了平均平均值和标准差后就确定了

    箱图plt.boxplot()

    参考:箱体知识参数知识
    在这里插入图片描述
    图片

    plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, zorder=None, hold=None, data=None)
    **x:**指定要绘制箱线图的数据;
    notch:是否是凹口的形式展现箱线图,默认非凹口;
    sym:指定异常点的形状,默认为+号显示;
    vert:是否需要将箱线图垂直摆放,默认垂直摆放;
    whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
    positions:指定箱线图的位置,默认为[0,1,2…];
    widths:指定箱线图的宽度,默认为0.5;
    **patch_artist:**是否填充箱体的颜色;
    **meanline:**是否用线的形式表示均值,默认用点来表示;
    **showmeans:**是否显示均值,默认不显示;
    showcaps:是否显示箱线图顶端和末端的两条线,默认显示;
    **showbox:**是否显示箱线图的箱体,默认显示;
    showfliers:是否显示异常值,默认显示;
    **boxprops:**设置箱体的属性,如边框色,填充色等;
    labels:为箱线图添加标签,类似于图例的作用;
    filerprops:设置异常值的属性,如异常点的形状、大小、填充色等;
    **medianprops:**设置中位数的属性,如线的类型、粗细等;
    **meanprops:**设置均值的属性,如点的大小、颜色等;
    **capprops:**设置箱线图顶端和末端线条的属性,如颜色、粗细等;
    whiskerprops:设置须的属性,如颜色、粗细、线的类型等;

    data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
    print(data)
    #解决中文乱码问题
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus']=False
    
    plt.boxplot(x=data.人数,patch_artist=True,showmeans=True,meanline=True, boxprops={'facecolor':'green','color':'red'},\
                flierprops={'marker':'o','markerfacecolor':'red','markersize':20},\
               medianprops={'linestyle':'--','color':'orange'},\
               meanprops={'linestyle':'-','color':'blue'})
    plt.xlabel('不同标号的人数',fontsize=15,labelpad=20)
    plt.title('人数箱图',fontsize=25,pad=25)
    # plt.legend(loc='best')
    plt.show()
    

    在这里插入图片描述
    程序解释及图形描述,箱图能够明显的显示出离群点,箱子的显示框在分位数的25%-75%,下线:25%分数-1.5(75%分位数-25%分位数),上线:25%分数+1.5(75%分位数-25%分位数),

    散点图plt.scatter

    感谢鸢尾花数据
    鸢尾花数据官方网址,下载或打开慢
    为了展示两个连续型变量的关系,使用循环为每一个事物给不同的显示属性,注意数据的名称准确性

    data=pd.read_csv(r'iris.csv',encoding='gbk')
    
    # print(data)
    #解决中文乱码问题
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus']=False
    
    #设置不同物种的颜色形状标记
    species=['virginica','setosa','versicolor']
    colors=['red','blue','orange']
    marker=['o','s','x']
    
    #给每个物种不同标记
    for i in range(0,3):
        plt.scatter(x=data.Width[data.Species==species[i]],
                    y=data.Length[data.Species==species[i]],
                    color=colors[i],marker=marker[i],label=species[i])
    plt.legend(loc='best')
    plt.ylabel('花瓣长度',fontsize=15,labelpad=10)
    plt.xlabel('花瓣宽度',fontsize=15,labelpad=10)
    plt.title('三种鸢尾花数据',fontsize=20,pad=20)
    
    plt.show()
    

    在这里插入图片描述

    折线图plt.plot()

    显示数据的变化趋势

    #设置图像大小和读取数据
    fig=plt.figure(figsize=(8,7))
    data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
    print(data)
    
    #解决中文乱码问题
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus']=False
    
    #设置第1列作为x的值,第3,4,5列作为对应的y值
    plt.plot(data.iloc[:,0],data.iloc[:,2],'bs--',
            data.iloc[:,0],data.iloc[:,3],'ro--',
            data.iloc[:,0],data.iloc[:,4],'gh--',)
    
    #修改折线图的横坐标名称,第一个参数是原始名称,第二个参数是新的名称
    plt.xticks(range(0,12,1),data.iloc[range(0,12,1),1],rotation=45,fontsize=10)
    plt.legend(loc='best')
    plt.ylabel('数据值',fontsize=15,labelpad=10)
    plt.xlabel('顺序',fontsize=15,labelpad=10)
    plt.title('数据变化',fontsize=20,pad=20)
    
    plt.show()
    

    在这里插入图片描述
    下面是对图像中线的描述,(程序和图像并不对应),图片中的参数正确

    plt.legend(loc='best',frameon=False,ncol=1)
    plt.legend(loc='best',frameon=True,ncol=1)
    plt.legend(loc='best',frameon=False,ncol=3)
    

    在这里插入图片描述

    展开全文
  • python画图plt函数学习

    千次阅读 多人点赞 2021-04-12 20:41:39
    导入:import matplotlib.pyplot as plt 画图主要有:列表绘图;多图绘图;数组绘图 二. 列表绘图 1. 基础绘图:plt.plot;plt.show import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [1, 4, 9, 16] plt.plot...

    python中的绘图工具 :matplotli,专门用于画图。

    一. 安装与导入

    工具包安装:conda install matplotli
    导入:import matplotlib.pyplot as plt

    画图主要有:列表绘图;多图绘图;数组绘图

    二. 列表绘图

    在这里插入图片描述

    1. 基础绘图:plt.plot;plt.show

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y = [1, 4, 9, 16]
    plt.plot(x, y)
    plt.show()
    

    2. 画图设置属性

    画图属性设置

    rgbyk
    红色绿色蓝色黄色黑色
    -:-。
    实线虚线点线点横线
    +o*.xsd^vp
    加号圆圈星号实心点叉号正方形钻石形上三角下三角五角星
    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y = [1, 4, 9, 16]
    # plt.plot(x, y, color='r', marker='o', linestyle='--')
    plt.plot(x, y, 'ro--')  # 该行为上一句的简写
    plt.show()
    

    3. 坐标轴的属性

    (1)x、y坐标名称设置

    plt.xlabel('x')
    plt.ylabel('y')
    

    (2)设置x、y范围
    主要参考博客
    plt.axis([a, b, c, d]) 设置x轴的范围为[a, b],y轴的范围为[c, d]
    plt.axis('equal') x,y轴刻度等长
    plt.axis('square') 作图为正方形,并且x,y轴范围相同
    (3)坐标间隔设定
    参考博客
    plt.xticks(参数一,参数二,参数三) 用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定。

    • 参数一:x或者y的参数
    • 参数二:新的标签
    • 参数三:旋转角度
    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4]
    y = [1, 4, 9, 6]
    labels = ['Frogs', 'Hogs', 'Bogs', 'Slogs']
    plt.plot(x, y)
    # You can specify a rotation for the tick labels in degrees or with keywords.
    plt.xticks(x, labels, rotation='vertical')
    plt.show()
    

    4. 坐标轴移动

    参考博客
    ax = plt.gca() 获取当前坐标轴,总共有四个轴top、bottom、left和right
    ax.spines[‘bottom’] 获取底部的轴,获取哪个轴,则参数中写哪个
    ax.spines['right'].set_color('none') 隐藏了右侧的坐标轴
    ax.spines['top'].set_color('none') 隐藏了左侧的坐标轴

    ax.xaxis.set_ticks_position('bottom') 要挪动底部的X轴,所以先目光锁定底部。
    ax.spines['bottom'].set_position(('data',0)) 在这里,position位置参数有三种,这里用到了“按Y轴刻度位置挪动”,'data’表示按数值挪动,其后数字代表挪动到Y轴的刻度值

    则移动坐标轴位置的代码变为:

    import matplotlib.pyplot as plt
    plt.figure(1)
    plt.plot()
    ax = plt.gca()
    ax.xaxis.set_ticks_position('bottom')
    ax.spines['bottom'].set_position(('data',0))
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data',0))
    ax.spines['top'].set_color('none')  # 设置顶部支柱的颜色为空
    ax.spines['right'].set_color('none')  # 设置右边支柱的颜色为空
    plt.show()
    

    5. 图片上添加文本和网格

    (1)plt.title('标题') 添加标题,可以参考博客
    (2)plt.annotate() 添加注释,可以参考博客

    import matplotlib.pyplot as plt
    x=[1, 2, 3, 4]
    y=[1, 4, 9, 16]
    plt.plot(x, y)
    plt.xlabel('x坐标轴')
    #y轴文本
    plt.ylabel('y坐标轴')
    #标题
    plt.title('Title')
    #添加注释 参数名xy:箭头注释中箭头所在位置,参数名xytext:注释文本所在位置,
    #arrowprops在xy和xytext之间绘制箭头, shrink表示注释点与注释文本之间的图标距离
    plt.annotate('I am zhushi', xy=(2,5), xytext=(2, 10),
                arrowprops=dict(facecolor='black', shrink=0.01),
                )
    #第3步:显示图形
    plt.show()
    

    (3) plt.legend() 右上角显示各个曲线代表什么意思。

    import matplotlib.pyplot as plt
    import numpy as np
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    n = np.linspace(-5, 4, 30)
    m1 = 3 * n + 2
    m2 = n ** 2
    plt.xlabel('时间')
    plt.ylabel('心情')
    plt.plot(n, m1, color='r', linewidth=1.5, linestyle='-', label='女生购物欲望')
    plt.plot(n, m2, 'b', label='男生购物欲望')
    plt.legend()  # 右上角显示各个曲线代表什么意思
    plt.show()
    

    (4)是否显示网格

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    plt.grid() # 显示网格线 1=True=默认显示;0=False=不显示
    plt.grid(1) # 显示网格线
    plt.grid(True) # 显示网格线
    plt.grid(b=True) # 显示网格线
    plt.grid(b=1) # 显示网格线
    plt.grid(b=True, axis='x') #只显示x轴网格线
    plt.grid(b=True, axis='y') #只显示y轴网格线
    

    三、多图绘制

    在这里插入图片描述
    如何使用Python创建多个画板和画纸来绘制多幅图,如果事先不声明画板画板,默认是创建一个画板一个画纸

    • 使用figure()方法创建画板1
    • 使用subplot()方法创建画纸,并选择当前画纸并绘图
    • 最后显示图形

    figure()函数可以帮助我们同时处理生成多个图,而subplot()函数则用来实现,在一个大图中,出现多个小的子图。

    处理哪个figure,则选择哪个figure,再进行画图。

    参考博客

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(-1, 1, 0.1)
    
    plt.figure(1) # 生成第一个图,且当前要处理的图为fig.1
    
    plt.subplot(1, 2, 1) # fig.1是一个一行两列布局的图,且现在画的是左图
    y1 = np.exp(x)
    plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1) # 画图
    plt.xlabel("x")
    plt.ylabel("y1")
    
    plt.figure(2) # 生成第二个图,且当前要处理的图为fig.2
    y2 = np.exp(2 * x)
    plt.plot(x, y2, color="k", linestyle="-", marker="s", linewidth=1) # 画图,fig.2是一张整图,没有子图,默认subplot(1, 1, 1)
    plt.xlabel("x")
    plt.ylabel("y2")
    
    plt.figure(1)  # 当前要处理的图为fig.1,而且当前图是fig.1的左图
    plt.subplot(1, 2, 2) # 当前图变为fig.1的右图
    y3 = np.exp(1.5 * x)
    plt.plot(x, y3, color="b", linestyle="-", marker="v", linewidth=1)
    plt.xlabel("x")
    plt.ylabel("y3")
    
    plt.show()
    

    其他属性则与上一节二一样设置。

    也可以将subplot子图设置为ax,然后对ax进行画图,则常用设置即为:

    ax.set_xlabel('x')	    #设置x轴名称
    ax.set_ylabel('y')	    #设置y轴名称
    ax.set_title('title')	#设置标题
    ax.legend()	            #设置图例:
    #方法1:
    # ax.plot(x1,y1,label='label1',x2,y2,label='label1') ax.legend()
    #方法2:
    # ax.plot(x1,y1,,x2,y2) ax.legend(('label1', 'label2'))
    #可设置图例位置属性:ax.legend(loc='best'),其他位置包括:'upper right','upper left', 'lower right','lower left','center'等
    ax.set_xlim(05)       #设置x轴范围
    ax.set_ylim(05)       #设置y轴范围
    ax.set_xticks((0, 2, 4, 6))  #设置x轴刻度
    ax.set_xticks((0, 2, 4, 6))  #设置y轴刻度
    ax.set_xticklabels(labels=['x1','x2','x3','x4'],rotation=30,fontsize='small')  #设置x刻度的显示文本
    ax.set_yticklabels()    #设置y刻度的显示文本,同上
    ax.text()               #指定位置显示文本
    ax.annotate()           #添加标注,参数:注释文本、指向点、文字位置、箭头属性
    ax.grid()               #显示网格
    

    修改上述代码则为:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(-1, 1, 0.1)
    
    plt.figure(1) # 生成第一个图,且当前要处理的图为fig.1
    
    ax1 = plt.subplot(1, 2, 1) # fig.1是一个一行两列布局的图,且现在画的是左图
    y1 = np.exp(x)
    plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1) # 画图
    ax1.set_xlabel("x")
    ax1.set_ylabel("y1")
    
    plt.figure(2) # 生成第二个图,且当前要处理的图为fig.2
    y2 = np.exp(2 * x)
    plt.plot(x, y2, color="k", linestyle="-", marker="s", linewidth=1) # 画图,fig.2是一张整图,没有子图,默认subplot(1, 1, 1)
    plt.xlabel("x")
    plt.ylabel("y2")
    
    plt.figure(1)  # 当前要处理的图为fig.1,而且当前图是fig.1的左图
    ax2 = plt.subplot(1, 2, 2) # 当前图变为fig.1的右图
    y3 = np.exp(1.5 * x)
    plt.plot(x, y3, color="b", linestyle="-", marker="v", linewidth=1)
    ax2.set_xlabel("x")
    ax2.set_ylabel("y3")
    
    plt.show()
    

    四. 数组绘图

    就是根据数组和函数进行绘图,和上面没什么区别。

    #多图绘制
    import matplotlib.pyplot as plt
    #导入包numpy
    import numpy as np
    #定义一维数组
    t = np.arange(0, 5, 0.2)
    
    
    #使用数组同时绘制多个线性
    
    #线条1
    x1=y1=t
    #线条2
    x2=x1
    y2=t**2
    #线条3
    x3=x1
    y3=t**3
    #使用plot绘制线条
    linesList=plt.plot(x1, y1,
             x2, y2,
             x3, y3 )
    #用setp方法可以同时设置多个线条的属性
    plt.setp(linesList, color='r')
    plt.show()
    print('返回的数据类型',type(linesList))
    print('数据大小:',len(linesList))
    
    展开全文
  • Python自带的plt是深度学习最常用的库之一,在发表文章时必然得有图作为支撑,plt为深度学习必备技能之一。作为深度学习入门,只需要掌握一些基础画图操作即可,其他等要用到的时候看看函数API就行。 1 导入plt库...

    Python自带的plt是深度学习最常用的库之一,在发表文章时必然得有图作为支撑,plt为深度学习必备技能之一。作为深度学习入门,只需要掌握一些基础画图操作即可,其他等要用到的时候看看函数API就行。

    1 导入plt库(名字长,有点难记)

    import matplotlib.pyplot as plt
    

    先随便画一个图,保存一下试试水:

    plt.figure(figsize=(12,8), dpi=80)
    plt.plot([1,2,6,4],[4,5,6,9])
    plt.savefig('./plt_png/test1.png') #必须要放在show()前面,show()之后会自动释放图表内存
    plt.show()
    

    在这里插入图片描述

    2 创建数据,画一个标准的图

    import random
    #创建一个小时内温度随时间变化的曲线(以分钟计算,温度在15到20之间)
    #1.准备数据
    x = range(60)
    y = [random.uniform(15,20)for i in x]
    
    #2.创建画布
    plt.figure( figsize=(12,8), dpi=80 )
    plt.plot(x,y)
    
    #3 设置刻度及步长
    z = range(40)
    x_label = ['11:{}'.format(i) for i in x]
    plt.xticks( x[::5], x_label[::5])
    plt.yticks(z[::5])  #5是步长
    
    #4 添加网格信息
    plt.grid(True, linestyle='--', alpha=0.5) #默认是True,风格设置为虚线,alpha为透明度
    
    #5 添加标题(中文在plt中默认乱码,不乱码的方法在本文最后说明)
    plt.xlabel('Time')
    plt.ylabel('Temperature')
    plt.title('Curve of Temperature Change with Time')
    
    #6 保存图片,并展示
    plt.savefig('./plt_png/test1.2.png')
    plt.show()
    

    在这里插入图片描述

    3 画两条曲线的图

    #3 创建另一个曲线的数据
    y_another = [random.uniform(5,10)for i in x]
    
    #输入两个曲线的信息
    plt.figure( figsize=(12,8), dpi=80 )
    plt.plot(x, y, color='r', linestyle='--', label = 'ShangHai')
    plt.plot(x, y_another, color='g', linestyle='-.', label = 'BeiJing')
    
    #显示图例
    plt.legend() #默认loc=Best
    
    #设置刻度及步长
    z = range(40)
    x_label = ['11:{}'.format(i) for i in x]
    plt.xticks( x[::5], x_label[::5])
    plt.yticks(z[::5])  #5是步长
    
    #添加网格信息
    plt.grid(True, linestyle='--', alpha=0.5) #默认是True,风格设置为虚线,alpha为透明度
    
    #添加标题
    plt.xlabel('Time')
    plt.ylabel('Temperature')
    plt.title('Curve of Temperature Change with Time')
    
    plt.savefig('./plt_png/test1.3.png')
    plt.show()
    

    在这里插入图片描述

    4 多个绘图区域画不同的图

    #4 创建多个绘图区
    
    #输入两个曲线的信息
    #plt.figure( figsize=(12,8), dpi=80 )
    figure, axes = plt.subplots( nrows=1, ncols=2, figsize=(12,8), dpi=80 )
    axes[0].plot(x, y, color='r', linestyle='--', label = 'ShangHai')
    axes[1].plot(x, y_another, color='g', linestyle='-.', label = 'BeiJing')
    
    #显示图例
    axes[0].legend() #默认loc=Best
    axes[1].legend()
    
    #设置刻度及步长
    z = range(40)
    x_label = ['11:{}'.format(i) for i in x]
    #axes[0].set_xticks( x[::5], x_label[::5]) #set_xticks()不支持字符串,只支持布尔值
    #axes[1].set_yticks(z[::5])  #5是步长 #set_yticks()不支持字符串,只支持布尔值
    axes[0].set_xticks( x[::10]) #设置步长
    axes[0].set_xticklabels(x_label[::5]) #设置字符串名
    axes[0].set_yticks(z[::5])
    axes[1].set_xticks( x[::10]) #设置步长
    axes[1].set_xticklabels(x_label[::5]) #设置字符串名
    axes[1].set_yticks(z[::5])
    
    
    #添加网格信息
    axes[0].grid(True, linestyle='--', alpha=0.5) #默认是True,风格设置为虚线,alpha为透明度
    axes[1].grid(True, linestyle='--', alpha=0.5)
    
    #添加标题
    axes[0].set_xlabel('Time')
    axes[0].set_ylabel('Temperature')
    axes[0].set_title("Curve of ShangHai's Temperature Change with Time")
    axes[1].set_xlabel('Time')
    axes[1].set_ylabel('Temperature')
    axes[1].set_title("Curve of BeiJing's Temperature Change with Time")
    
    plt.savefig('./plt_png/test1.4.png')
    plt.show()
    

    在这里插入图片描述

    5 绘制简单数学函数图像

    import numpy as np
    #准备数据
    x = np.linspace(-1,1,1000) #在-1至1之间等距生成1000个数
    y = 2*x*x
    #绘制画布
    #折线图plot
    plt.figure(figsize=(12,8), dpi=80)
    plt.plot( x, y, color='b', label='Y=2*X^2' )
    plt.legend()
    plt.grid(True, linestyle='--', alpha=0.5)
    
    plt.savefig('./plt_png/test1.5.png')
    plt.show()
    

    在这里插入图片描述

    6 散点图、柱状图、双柱状图、直方图、饼图

    6.1 散点图

    #散点图scatter
    x = np.linspace(-1,1,20) 
    y = 2*x*x
    plt.figure(figsize=(12,8), dpi=80)
    plt.scatter( x, y, color='b', label='Y=2*X^2' ) #主要是这里plot换成scatter,下面的根据需要修改
    plt.legend()
    plt.grid(True, linestyle='--', alpha=0.5)
    
    plt.savefig('./plt_png/test1.6.png')
    plt.show()
    

    在这里插入图片描述
    6.2 柱状图

    #柱状图bar
    x = range(8) 
    y = [100,200,400,350,450,350,250,300]
    plt.figure(figsize=(20,8), dpi=80)
    plt.bar( x, y, width=0.4, color=['r', 'k', 'y', 'g', 'b', 'c', 'm', 'k'], label='Bar_x_y' ) #这里是bar()函数
    plt.legend()
    plt.grid(True, linestyle='--', alpha=0.5)
    #修改x刻度名字
    plt.xticks(x, ['class1','class2','class3','calss4','class5','class6','class7','calss8']) 
    #设置xy标签
    plt.xlabel('Classes')
    plt.ylabel('Numbers')
    plt.title('the Numbers of Classes')
    
    plt.savefig('./plt_png/test1.7.png')
    plt.show()
    

    在这里插入图片描述
    6.3 对比柱状图(双柱状图)

    #对比柱状图bar
    x = range(8) 
    y = [100,200,400,350,450,350,250,300]
    z = [200,300,350,250,450,450,500,250]
    plt.figure(figsize=(20,8), dpi=80)
    plt.bar( x, y, width=0.2, color='r', label='Bar_1' )
    #加一个柱状图,[i+0.2 for i in x]为间距生成式
    plt.bar( [i+0.2 for i in x], z, width=0.2, color='b', label='Bar_2' )
    plt.legend()
    plt.grid(True, linestyle='--', alpha=0.5)
    #修改x刻度名字
    plt.xticks([i+0.1 for i in x], ['class1','class2','class3','calss4','class5','class6','class7','calss8']) 
    #设置xy标签
    plt.xlabel('Classes')
    plt.ylabel('Numbers')
    plt.title('the Numbers of Classes')
    
    plt.savefig('./plt_png/test1.8.png')
    plt.show()
    

    在这里插入图片描述

    6.4 直方图

    #直方图histogram
    x_1 = range(80)
    number = np.random.randint(50,200,[80])
    print(max(number),min(number))
    bins = int((max(number) - min(number))//10)
    plt.figure(figsize=(20,8), dpi=80)
    plt.hist( number, bins=bins, color='b', label='Histogram' ) #y轴可以是频数,也可以是频率
    plt.legend()
    plt.grid(True, linestyle='--', alpha=0.5)
    
    plt.xticks(range(min(number), max(number), 10)) 
    
    plt.savefig('./plt_png/test1.9.png')
    plt.show()
    

    在这里插入图片描述

    6.5 饼图

    #饼图pie ,超过9个类别不适合用饼图
    import matplotlib.pyplot as plt
    x3 = range(8) 
    y3 = [100,200,400,350,450,350,250,300]
    z3 = ['class1','class2','class3','calss4','class5','class6','class7','calss8']
    plt.figure(figsize=(20,8), dpi=80)
    plt.pie( y3, labels=z3, colors=['r', 'k', 'y', 'g', 'b', 'c', 'm', 'k'], autopct='%1.2f%%' )
    plt.legend()
     
    plt.title('the Numbers of Classes')
    
    plt.axis('equal') #调节饼图长轴短轴的比例,以及整图布局
    
    plt.savefig('./plt_png/test1.10.png')
    plt.show()
    

    在这里插入图片描述

    注:plt不能显示中文的解决方法

    导入plt时顺便加上下面两行代码即可

    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文
    plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
    
    展开全文
  • plt.plot(),plt.scatter(),plt.legend函数的用法介绍

    千次阅读 多人点赞 2021-11-24 13:21:56
    plt.plot()函数 plt.plot(x, y, format_string, **kwargs) 参数 说明 x X轴数据,列表或数组,可选 y Y轴数据,列表或数组 format_string 控制曲线的格式字符串,可选 **kwargs 第二组或更多(x,y,...
  • plt.style.use

    千次阅读 多人点赞 2020-07-30 15:14:42
    print(plt.style.available) # 打印样式列表 ['bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark-palette', '...
  • plt.plot()详解

    万次阅读 多人点赞 2021-07-11 18:02:07
    plt.plot()函数是matplotlib.pyplot模块下的一个函数,用于画图 它可以绘制点和线, 并且对其样式进行控制. 由浅入深介绍如下 1.plt.plot(x, y) 1.1 x为x轴数据, y为y轴数据 import matplotlib.pyplot as plt x=...
  • 需要将图片经过tf.Session()执行 二、cv2读取文件中不能有中文字符 三、cv2读取三通道和单通道的不同 四、cv2的取的图片文件使用cv.imshow()显示时,需要注意图像的像素值范围必须映射到0-255 五、plt.colorbar()...
  • python plt.plot()绘图

    千次阅读 2021-03-17 16:39:45
    推荐用电脑绘图,如果是安卓手机,推荐 应用汇 -- pydroid.#本文的命令都要调用的包包,# 此外再次强调for 条件 要加冒号 : 回车后循环体要加四个空格import numpy as npimport matplotlib.pyplot as plt一. plt.plot()...
  • plt 画矩形

    千次阅读 2022-02-16 13:39:35
    在CT图像上画矩形,cv2虽然画矩形很方便,但是显示CT图的时候灰蒙蒙的(还不知道是什么原因),plt显示CT图像正常,直接用plt画矩形算了 cv2.rectangle(img_slice0, left_xy1, left_xy2, (0, 0, 255)) cv2.imshow...
  • plt.plot 、plt.subplot、plt.subplots区别

    千次阅读 2021-02-08 23:23:00
    plt.plotfig = plt.figure(figsize=(16,16),dpi=300) # 初始化一张画布,可以设置figsize和dpiplt.plot() #直接在一张...
  • import matplotlib.pyplot as plt的一些基础用法,包括直方图
  • python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改plt.subplotplt.subplots坐标轴修改  偶然发现python(matplotlib)中绘制子图有两种方法,一种是plt.subplot,另一种是plt.subplots,这篇博客说...
  • plt.imshow

    千次阅读 2021-10-27 19:25:35
    plt.imshow(X) X:图像数据 (M, N):标量数据的图像,灰度图 (M, N, 3):RGB图像 (M, N, 4):RGBA图像 注意:其中RGB和RGBA图像为float类型[0, 1],或者int类型[0, 255] 显示图像 Display an image, i.e. ...
  • matplotlib matplotlib是python底层绘图库,主要做数据可视化图表,模仿MATLAB构建 plt.figure修改图表大小 ...plt.xticks,plt.yticks设置x轴y轴的刻度 设置x轴y轴的刻度 plt.xticks(x,name) plt.yticks([-2,
  • plt.subplot()和plt.subplots(),plt.gca(),

    千次阅读 2021-11-26 15:31:57
    当前图表可以使用plt.gcf()获得 >Get_ Current_Figure = plt.gcf() >!!!!当前子图可以使用Plt.gca()获得 >Get_ Current_Axes = plt.gca() plt.subplots() 理解:先设置画布分布,确定坐标位置可以认为是...
  • python plt 画图

    万次阅读 多人点赞 2018-11-12 20:27:29
    plt可以画多个子图 import numpy as np fig = plt . figure ( ) ax1 = fig . add_subplot ( 2 , 1 , 1 ) # 画2行1列个图形的第1个 ax2 = fig . add_subplot ( 2 , 1 , 2 ) # 画2行1列个图形的第2个...
  • python plt.bar 颜色

    千次阅读 2020-12-05 02:26:07
    由于Matplotlib是Python的一个库,因此在程序开发中,它也可以使用 Python的... Matplotlib 概述使用 pyplot 创建......fig=plt.figure()ax = fig.add_subplot(111, polar=True)# 绘制折线图 ax.plot(angles, values, ...
  • Matplotlib——数据可视化plt.plot、plt.figure、

    千次阅读 多人点赞 2020-03-23 10:03:46
    数据可视化函数plt.plot(x,y,ls,lw,c,marker,markersize,markeredgecolor,markerfacecolor,label) 设置画线的标准和形式 参数说明: **x:**横坐标;**y:**纵坐标;**ls或linestyle:**线的形式(‘-’,‘–’,...
  • fig = plt.figure(),plt.subplots()的作用

    千次阅读 2022-01-03 16:42:52
    参考多个知乎回答 matplotlib刨根问底系列之二:再谈Figure和Axes的区别 - 有风吹过山峰的文章 - 知乎 python matplotlib中axes与axis的区别是什么?...fig = plt.figure()作用就是生成一个图框,但
  • python-plt.xticks与plt.yticks

    千次阅读 2021-05-07 13:26:26
    plt.figure(figsize=(10, 10)) for i in range(25): plt.subplot(5, 5, i+1) plt.xticks([]) plt.yticks([]) plt.grid(False) plt.imshow(train_images[i], cmap=plt.cm.binary) plt.xlabel(class_names[train...
  • plt.subplot(),plt.plot(),plt.xlim()详解

    千次阅读 2021-09-02 12:03:04
    使用plt.subplot来创建小图. plt.subplot(221)表示将整个图像窗口分为2行2列, 当前位置为1. plt.subplot(221)表示第一行的左图 plt.subplot(222)表示将整个图像窗口分为2行2列, 当前位置为2. plt.subplot(222) #...
  • python作图之plt.contour详解

    千次阅读 2021-12-04 15:54:32
    plt.contour是python中用于画等高线的函数,这里介绍一下plt.contour的使用。 文章目录使用示例plt.contour()函数本身plt.contour()图中的坐标叮! 使用示例 import numpy as np import matplotlib.pyplot as plt ...
  • python plt调整子图间隔

    千次阅读 2022-03-29 10:11:06
    plt.subplots_adjust(left=None, bottom=None, right=None, top=None, \ wspace=None, hspace=0.45) 说明: plt.tight_layout() 使子图紧凑排放 wspace: 调整子图左右之间的距离 hspa...
  • PLT转DXF(CAD格式)或PDF

    热门讨论 2012-04-17 16:23:10
    PLT转DXF(CAD格式)或PDF;设计院发的plt文档,转为DXF,然后再用cad打开可转为dwg(cad格式);十分好用,本人亲测的;
  • plt.grid(True) plt.gca().xaxis.grid(True, which='minor') # minor grid on too plt.subplot(312) plt.plot(y, x) plt.yscale('symlog') plt.ylabel('symlogy') plt.subplot(313) plt.plot(x, np.sin(x / 3.0)) ...
  • plt.plot 参数

    千次阅读 2020-12-10 05:05:09
    图例 Legend、网格 Grid,刻度 tick,点 Markers,边框线 Spines,标签 Label设置行标签与列标签:plt.xlabel('随机变量:表白第k次才首次成功')5.设置标题:plt.title('几何分布:p=%.2f' % p)6.绘制图形:p...
  • plt 绘图 知识点整理

    千次阅读 2018-08-22 10:57:05
    plt.xticks()/plt.yticks()设置轴记号 现在是明白干嘛用的了,就是人为设置坐标轴的刻度显示的值。 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 #...
  • plt颜色大全 plt.plot()的使用,简单例子 X = np.linspace(1, 20, 10) #[1 3 5 7 9 11 13 15 17 19] [2 4 6 8 10 12 14 16 18 20] Y = np.sin(X) plt.plot(X, Y, color = "blue", linewidth=2, linestyle="-", ...
  • Python 用plt做动画

    千次阅读 2022-01-26 03:44:33
    plt.cla() 表示清除当前轴 plt.clf() 表示清除当前数字 plt.ion()用于打开交互模式 plt.ioff()用于关闭交互模式 plt.close()表示关闭一个窗口 plt.gca() 表示获取当前轴 plt.gcf() 表示获取当前图 fig, ax...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 425,830
精华内容 170,332
关键字:

plt