plot python 修改属性_27_手把手教你学Python之数据可视化(中)

5b425ac0885a860e18e5acc0c88109c3.png

线形图(折线图)

线形图主要是通过线条将序列中相邻的两个点进行连接而成,使用非常广泛,通过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(标签,用于图例)等。

7ba2d7f8e10d935faf6e1d71662f3a37.png

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

fafa93a2bd5ae88175052c7be8a6c4a8.png

1ffe7d46aff3b4224de59fbe2efd69e2.png

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

线形图案例

8e5400dd2eee6dd9b205c2a350aeb00a.png

参考代码:

3e5350f03f3009874697f3747134d7b1.png

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

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

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

706dd573bdd0f364dd8f44bd71bb79f5.png

f7f081337a7a5d41ca2b00c817a18c34.png

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

绘制正弦曲线、余弦曲线

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

运行效果图如下:

b594fbd9339288b3fcd50f173c70fa7b.png

参考代码如下:

e18a7dc1b53f72974210be697c19a900.png

直方图

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

直方图的一些效果举例:

42959dd5ab70c55fb1be4f795bab6a98.png

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个等距离的区间,然后统计各个区间上数出现的个数,最终绘制出直方图。如图所示。

298f55b143d31a3608b9daf7561fab41.png

参考代码如下:

f032ea943b0c2695503d8a5d829909c8.png

条形图

条形图跟直方图类似,只不过 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(水平)

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

条形图案例

baa97dfb85a438447d7aeaa3a941356f.png

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

ebaa225d69b8a269fdc9bbc7d97475cc.png

更多Python学习资料请加入群、联系助理老师或关注微信公众号获取,我们会不定期更新!

b6113a5aadd4b0854a63668309f9c1dd.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值