数据挖掘基础-使用matplotlib实现简单图形

news/2024/7/17 17:34:53
  1. 折线图
    1. 保存简单折线图
      import matplotlib.pyplot as plt
      plt.figure(figsize=(20, 8), dpi=80)
      # figsize指定长高, dpi=像素
      # 生成fig对象
      plt.plot([1, 0, 9], [4, 5, 6])
      path = 'test1.png'
      plt.savefig(path)
      # plt.show()
      # 注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片

       

    2. 画温度/时间图
      1. 初步实现
        # import matplotlib.pyplot as plt
        import random
        x = range(60)
        y = [random.uniform(15, 18) for i in x]
        plt.figure(figsize=(20, 8), dpi=80)
        plt.plot(x, y)
        plt.show()

         

      2. 同一张表内折线图显示(可能存在中文显示问题)
        # 添加网格显示
        x = list(range(61))
        y_shanghai = [random.uniform(a=39, b=40) for _ in range(len(x))]
        y_beijing = [random.uniform(a=3, b=5) for _ in range(len(x))]
        
        # 创建画布
        plt.figure(figsize=(20, 8), dpi=100)
        
        # 绘制折线图
        plt.plot(x, y_shanghai, label="上海", color="r")
        plt.plot(x, y_beijing, label="北京", color="y")
        
        # 设置辅助显示层
        plt.title("上海和北京11点~12点温度变化情况", fontsize=20)
        
        # 设置x, y 轴的描述信息
        plt.xlabel("时间(分)")
        plt.ylabel("温度(°C)", fontsize=20)
        xticks = range(41)
        # 设置刻度信息
        plt.yticks(xticks[::5])
        
        
        x_decs = ["11点{}分".format(i) for i in x]
        # 设置x轴的显示 为字符串
        plt.xticks(x[::2],x_decs[::2],rotation=45)
        # rotation 字体显示倾斜度
        
        
        # 显示网格
        plt.grid(linestyle="-.", color="b", alpha=0.4)
        
        # 设置图例说明显示的位置
        # plt.legend(loc="best")
        # plt.legend(loc=0)
        plt.legend()
        # 显示画图
        plt.show()

         

        1. 中文显示问题
          1. 安装字体(SimHei或其他中文字体)
          2. 清楚matplotlib文件
          3. 更改配置
  2. 散点图
    1. 简单散点图
      x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,  20.67, 288.64,
             163.56, 120.06, 207.83, 342.75, 147.9 ,  53.06, 224.72,  29.51,
              21.61, 483.21, 245.25, 399.25, 343.35]
      y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,  24.9 , 239.34,
             140.32, 104.15, 176.84, 288.23, 128.79,  49.64, 191.74,  33.1 ,
              30.74, 400.02, 205.35, 330.64, 283.45]
      
      # 2)创建画布
      plt.figure(figsize=(20, 8), dpi=100)
      
      # 3)绘制散点图
      plt.scatter(x, y)
      
      # 4)显示图像
      plt.show()

       

  3. 柱状图
    1. 简单柱状图
      # 电影名字
      movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
      # 横坐标
      x = range(len(movie_name))
      # 票房数据
      y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]
      plt.figure(figsize=(20, 8), dpi=100)
      plt.bar(x, y, width=0.5, color=["r","b","y"])
      # 这是x轴的刻度
      plt.xticks(x, movie_name)
      plt.show()

       

  4. 直方图
    1. 简单直方图
      time = [131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]
      
      # 创建画布对象
      plt.figure(figsize=(20, 8), dpi=100)
      maxtime = max(time)
      mintime = min(time)
      step = 5
      bins = int((maxtime - mintime) / step)
      
      # 调用直方图的绘图 方法
      plt.hist(time, bins=bins)
      
      plt.grid(linestyle="--", color="r", alpha=0.3)
      
      # 显示画布
      plt.show()

       

  5. 饼图
    1. 简单饼图
      # 饼状图
      movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
      
      place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105]
      # 2)创建画布
      plt.figure(figsize=(20, 8), dpi=100)
      
      # 3)绘制饼图
      plt.pie(place_count, labels=movie_name, autopct="%1.2f%%", colors=['b','r','g','y','c','m','y','k','c','g','y'])
      
      # 显示图例
      plt.legend()
      
      plt.axis("equal")
      plt.show()

       

    2. 注意显示的百分比的位数
    3. plt.pie(x, labels=,autopct=,colors)
      • x:数量,自动算百分比
      • labels:每部分名称
      • autopct:占比显示指定%1.2f%%
      • colors:每部分颜色

http://www.niftyadmin.cn/n/1585943.html

相关文章

ansible的安装和使用

安装ansiblehttp://sofar.blog.51cto.com/353572/1579894/http://www.linuxidc.com/Linux/2015-02/112774.htm 一。安装软件1.查看是否有安装软件ansible host31 -m shell -a "rpm -qa |grep httpd"如果显示host31 | FAILED | rc1 >> 则表示没安装如果显示172…

Auto-encoder 在异常检测中的应用

1 Auto-encoder 目的是提取特征. Auto-encoder能恢复样本训练过程,就保证了隐含层提取的特征是样本的重要,本质的特征,否则不能恢复样本. 2 用样本学习好Auto-encoder, 将时间序列样本,输入训练好的auto-encoder, 如果…

多任务-进程

进程:一个程序运行起来后,代码用到的资源 称之为进程,它是操作系统分配资源的基本单元。 进程的创建-multiprocessing multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象,这个对…

POJ NOI0105-42 画矩形

问题链接:POJ NOI0105-42 画矩形。 总时间限制:1000ms内存限制: 65536kB描述根据参数,画矩形。输入输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少…

bind安装域名解析服务,以及分离服务

安装DNSrpm -ivh bind*.rpm进入/etc/named/chroot/etc 设置named.conf[rootlocalhost named]# vim /etc/named.conf//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS…

数据挖掘-Numpy简单使用(一)

numpy有时用np 表示(import numpy as np) 认识N维数组-ndarray属性 数组属性反映了数组本身固有的信息。 属性名字属性解释ndarray.shape数组维度的元组ndarray.ndim数组维数ndarray.size数组中的元素数量ndarray.itemsize一个数组元素的长度&#xff08…

快速入门系列--WCF--06并发限流、可靠会话和队列服务

快速入门系列--WCF--06并发限流、可靠会话和队列服务 这部分将介绍一些相对深入的知识点,包括通过并发限流来保证服务的可用性,通过可靠会话机制保证会话信息的可靠性,通过队列服务来解耦客户端和服务端,提高系统的可服务数量并可…

做一个Django项目(1.1、立项)

创建项目 码云创建仓库添加ssh 生成ssh公钥 ssh-keygen -t rsa -C "邮箱"拷贝到码云下载项目 git clone 下载地址使用命令创建项目 # django-admin startproject 工程名称 django-admin startproject md 修改配置文件位置 更改配置文件位置 在项目目…