显示库之matplotlib(常用图绘制)

1.常用图的绘制
    1. 折线图
        在之前的博客中详细解释过。地址:

        https://blog.csdn.net/cai_niao_lu/article/details/121886458
    2. 散点图
        1. API:
            plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None)
                x:数据点对应的x轴上的数值
                y:数据点对应的y轴上的数值
                s:对应的是size,即散点图中点的大小
                c:color,即点的数值,传入的是一个数组或者是一个值,当传入的是数组的时候,说明存在分级的时候可以使用camp或者norm进行颜色分类。
                camp:色谱,当c中传入数值的时候,进行分类颜色
                norm:也相当于色谱,可以进行颜色分类
        2. 适用范围:用于寻找两个变量之间的关系时候利用。或者分类结果通过散点图表示。
    3. 柱状图
        1. API:
            plt.bar(x, height, width=0.8, align='center', color=)
                x:对应的是x轴上的分级
                height:对应的是x分级的高度
                width:柱状图的宽度
                align:取值center(x对应在柱状图的中间位置)或者edge(x对应在柱状图的左边位置。
                color:传入一个列表
        2. 适用范围:用来比较,反应的比较直观。
    4. 直方图
        1. API:
            plt.hist(x, bins=None, density=False, color=None, label=None)
                x:数据值
                bins:分级的方式,可以传入数组或者传入数值,当传入数值时,其为分组的组数;当传入是数组时,其为真正的分组方式。例如[1, 2, 3, 4] 则分级方式为[1, 2),[2, 3),[3, 4]。注意最后一个是闭合的。
                density:如果传入True,则输出的y轴上是所占有的比例。
                color:直方图的颜色
                label:直方图的名称
        2. 适用范围:用来查看数据的分布情况。
        3. 与柱状图不同的是:
            1. 两个直方图之间不存在间隙
            2. 直方图的x轴上的顺序不能变化,而柱状图可以
            3. 适用的范围不同,主要是用来查看数据的分布规律
    5. 饼图
        1. API:
            plt.pie(x, labels=None, colors=None, autopct=None, shadow=False, radius=1)
                x:传入数值
                labels:饼图每一部分的名称
                colors:传入的是一个数组,用来颜色分级
                autopct:格式化显示的内容,一般传入'%1.2f%%',含义是保留两位小数
                shadow:如果传入True,那么饼图下方出现阴影。用来美化。
                radius:饼状图的半径大小
        2. 适用范围:
            当类别少于9个的时候,才适用,如果超过9个,那么采用柱状图进行显示。
        3. 饼图画出不圆的解决方法:
            plt.axis('equal')
2.以上就是我们数据分析中经常用到的图像了,可以添加的具体细节,在上一篇博客中已经清楚的分析过了。地址:https://blog.csdn.net/cai_niao_lu/article/details/121886458。具体细节如下:
    1.网格绘制
    2.x、y轴的名称设置
    3.x、y轴的刻度设置
    4.图标题的设置
    5.多个图的绘制(面向对象的绘图过程)
3.注意:matplotlib的颜色是支持16进制颜色的。可以通过16进制来搭配颜色,呈现出最好的图像。

散点图绘制

代码: 

import matplotlib.pyplot as plt
import numpy as np

# 1.数据获取
x = np.arange(100)
y = np.sin(x) + np.random.random()

# 2.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 3.绘制散点图
plt.scatter(x, y, s=30, c=y, marker='o', cmap='coolwarm')

# 4.显示图像
plt.show()

输出:

柱状图的绘制 

 代码:

import matplotlib.pyplot as plt

# 中文显示问题
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

# 1.数据获取
movie_names = ['股东局中局', '扬名立万', '雄狮少年', '曾经相爱的我们', '长津湖', '铁道英雄', '门锁']
ticks = [3108, 2102, 674, 600, 333, 203, 118]

# 2.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 3.绘制柱状图
plt.bar(movie_names, ticks, width=0.4, align='center', color=['b', 'r', 'g', 'y', 'c', 'm', 'k'])

# 4.图像显示
plt.show()

结果输出:

 

柱状图的绘制升级版

需求说明:柱状图的一块区域内,绘制两个柱状图。

 代码:

import matplotlib.pyplot as plt
import numpy as np

# 1.数据获取
ticks = np.array([3108, 2102, 674, 600, 333, 203, 118])
ticks_data = ticks / 7
movie_names = ['股东局中局', '扬名立万', '雄狮少年', '曾经相爱的我们', '长津湖', '铁道英雄', '门锁']

# 2.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 3.绘制柱状图
plt.bar(np.arange(7)-0.2, ticks, width=0.4, label='一周票房', color='r')
plt.bar(np.arange(7)+0.2, ticks_data, width=0.4, label='一周票房', color='g')
plt.xticks(range(7), movie_names)
plt.legend()

# 4.图像显示
plt.show()

输出:

 直方图的绘制

代码:

import matplotlib.pyplot as plt
import numpy as np

# 1.数据获取
x = [155, 153, 162, 166, 164, 164, 175, 173, 173, 181, 188, 188, 182, 190]

# 2.创建画板
plt.figure(figsize=(10, 8), dpi=100)

# 3.绘制图像
plt.hist(x, bins=np.arange(150, 195, 10), density=False, color='g', label='直方图绘制')
plt.xticks(range(150, 191, 10))

# 4.图像显示
plt.show()

 输出:

 直方图绘制2,以占有比例绘图

 代码:

import matplotlib.pyplot as plt
import numpy as np

# 1.数据获取
x = [155, 153, 162, 166, 164, 164, 175, 173, 173, 181, 188, 188, 182, 190]

# 2.创建画板
plt.figure(figsize=(10, 8), dpi=100)

# 3.绘制图像
plt.hist(x, bins=np.arange(150, 195, 10), density=True, color='g', label='直方图绘制')
plt.xticks(range(150, 191, 10))

# 4.图像显示
plt.show()

 输出:

 饼状图绘制

 代码:
 

import matplotlib.pyplot as plt

# 1.数据获取
movie_names = ['股东局中局', '扬名立万', '雄狮少年', '曾经相爱的我们', '长津湖', '铁道英雄', '门锁']
ticks = [3108, 2102, 674, 600, 333, 203, 118]

# 2.创建画布
plt.figure(figsize=(200, 8), dpi=100)

# 3.绘制饼状图
plt.pie(ticks, labels=['股东局中局', '扬名立万', '雄狮少年', '曾经相爱的我们', '长津湖', '铁道英雄', '门锁'], colors=['#FF8C00', '#2F4F4F', '#FFFAF0', '#FFD700', '#7CFC00', 'r', '#A0522D'], autopct='%1.2f%%', shadow=False, radius=.8)
plt.legend(loc='upper right')

# 4.图像显示
plt.show()

输出:

学习地址: 

 黑马程序员Python教程,4天快速入门Python数据挖掘,系统精讲+实战案例_哔哩哔哩_bilibili

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值