Python线条绘制 python线形图_直方图


线形图(折线图)

线形图主要是通过线条将序列中相邻的两个点进行连接而成,使用非常广泛,通过plot()函数绘制,可以指定线条的样式点的标记以及颜色等。使用plot()方法绘制点或线等,需指定所有点的坐标,可同时绘制多条线。调用方式有如下两种:

plot([x], y, [fmt], *, data=None, **kwargs)

plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

  • x:x轴坐标,可选,当没有传值时,采用默认值,值的个数与y轴坐标个数相同,从0开始不断增大
  • y:y轴坐标,不可省略,通常是一个数或一维数组;
  • data: 通常为可检索的对象,例如字典DataFrame等;
  • fmt:定义基本样式,由[颜色][点的标记][线条样式]三部分字符组成,也可通过关键字参数设置
  • kwargs:关键字参数,例如:color (颜色)、marker(标记)、linestyle(线条样式)、linewidth(线条宽度)、markersize(标记大小)、label(标签,用于图例)等。


Python线条绘制 python线形图_数据_02


如果通过color关键字参数单独设置颜色,可使用颜色单词全称(如“green”)以及十六进制字符串(如“#aabbcc”)。


Python线条绘制 python线形图_数据_03


Python线条绘制 python线形图_plot python 修改属性_04


注意三种字符顺序可打乱,也可省略部分,没指定线条样式时,将不显示线条,没指定标记则不显示点

线形图案例


Python线条绘制 python线形图_plot python 修改属性_05


参考代码:


Python线条绘制 python线形图_数据_06


注意:pyplot 默认不支持中文显示,两种解决方案:

  • 使用 rcParams['font.family']属性修改字体,此时,整个图中的字体都会改变;
  • 在需要显示中文的地方,增加一个属性:fontproperties,此时只修饰部分地方,其他地方的字体不会跟随改变;

rcParams中关键的属性及其默认值如下:


Python线条绘制 python线形图_Python线条绘制_07


Python线条绘制 python线形图_直方图_08


采用中文字体时,部分字体下,负号不能正常显示,需设置 axes.unicode_minusFalse

绘制正弦曲线、余弦曲线

思路:首先需要一系列的X轴坐标,可通过numpy中的arange()函数生成,例如从0 到 4,步长为0.02;然后借助 numpy 中的正弦、余弦函数对每个x坐标分别求值;最后根据x坐标和对应的y坐标画图

运行效果图如下:


Python线条绘制 python线形图_字符串_09


参考代码如下:


Python线条绘制 python线形图_字符串_10


直方图

直方图是用一系列等宽不等高的长方形来表示数据,宽度表示数据范围的间隔,高度表示在给定间隔内数据出现的频数,矩形的高度跟落在间隔内的数据数量成正比,变化的高度形态反映了数据的分布情况

直方图的一些效果举例:


Python线条绘制 python线形图_直方图_11


pyplot 中使用 hist() 绘制直方图,并以元组形式返回直方图的计算结果,包括各区间中元素的数量,区间的取值范围,以及具体每个区间对象。

hist (x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', **kwargs)

  • x:数组或者数组序列不要求每个数组长度相同),用于存放数据;
  • bins: 整数、序列或字符串,整数表示等宽区间的个数,自动计算区间范围,序列则表示区间的范围,除了最后一个以外,都是包含左边不包含右边,字符串则表示对应的策略,默认为hist.bins;
  • range:元组,指定最小值和最大值,默认为数据中的最小值和最大值,如果bins是一个序列,则range没什么影响;
  • density:布尔值,可选,如果为True,则返回的是归一化的概率密度,所有区间的概率之和为1
  • weight:类似于数组的值,可选,形状和 x 相同,表示每个值对应的权重,默认情况下所有数据的权重相同;
  • cumulative:布尔值或-1,累积求和,表示小于某个数的所有元素个数之和,随着数的增大而不断增大,如果为-1,则反转方向,表示大于某个数的所有元素个数之和,随着数量增大而不断减小;
  • histtype : 直方图类型,'bar'(多个并列摆放), 'barstacked'(多个堆叠摆放), 'step'(生成对应的折线), 'stepfilled'(填充相关区域);
  • orientation: 直方图的方向,默认为垂直。

直方图案例

思路:随机生成1000个以10为中心的正态分布的数,和1000个以12为中心的正态分布的数,然后将结果取值范围划分为30个等距离的区间,然后统计各个区间上数出现的个数,最终绘制出直方图。如图所示。


Python线条绘制 python线形图_字符串_12


参考代码如下:


Python线条绘制 python线形图_字符串_13


条形图

条形图跟直方图类似,只不过 x 轴表示的不是数值而是类别。直方图的各矩形通常是连续排列,而条形图则是分开排列。使用 pyplot 的 bar() 函数绘制的条形图。

bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

  • x:x 轴的位置序列,即条形的起始位置
  • height:y轴的数值序列,即条形图的高度,需展示的数据;
  • width:每个矩形的宽度,可选,默认为0.8
  • bottom : y轴坐标的基线,默认为0;
  • align:对齐方式,可选,center和edge两种,默认为'center'
  • color:条形图的填充颜色
  • edgecolor:条形图边框的颜色;
  • orientation:方向,vertical(垂直)、 horizontal(水平)

如果需要在一个图上显示多种条形图,可调整位置和宽度让多个条形图并列摆放,也可以堆叠摆放

条形图案例


Python线条绘制 python线形图_Python线条绘制_14


更多详细内容可查看视频讲解,手把手教你学Python(入门基础)课程完整视频腾讯课堂链接:https://ke.qq.com/course/1581404?tuin=4c5cc1bc


Python线条绘制 python线形图_数据_15