zoukankan      html  css  js  c++  java
  • 数据绘图工具之Matplotlib

      一.安装:绘图和可视化

      pip install matplotlib 

      我们已经下好了anaconda 包含了绘图工具包 直接导入即可

      import matplotlib.pyplotlib as plt

      二.# 第一种图形 可视化绘图:折线图

    # 上面由于是中文需要解决乱码的问题
    
    b = [2,5,4,8,9,7,10]
    
    plt.plot(b)
    # 设置标题
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    plt.title('title经济发展趋势图',fontsize=20,color='red')
    
    # 设置 x y 轴的名称
    plt.xlabel('x轴',fontsize=20)
    plt.ylabel('y轴',fontsize=20)
    
    # 调节图表大小
    
    plt.show()

      (2)第二种 绘制每个国家地区电影数量的柱状图

    #(1)读取数据
    mv = pd.read_csv('./aaa.csv')
    mv
    # (2)每个地区有分区 进行分主 然后进行统计数量 size()
    movies = mv.groupby('产地').size().sort_values(ascending=False)
    movies
    # (3)获取x, y 轴的值
    x = movies.index
    x
    
    # 获取 y轴的值
    y = movies.values
    y
    (4)
    #
    绘制柱状图 bar # plt.bar(x,y,color='blue') # plt.show()显示图型 # 调节图表大小 plt.figure(figsize=(20,6)) # 注意是画图之前 plt.bar(x,y,color='blue') # 标题 plt.title('每个国家的或地区的电影数量',fontsize=30,color='k') # 没有位置固定 # x 轴的字体的的大小 和 旋转角度 plt.xticks(rotation=45,fontsize=15) # ticks 滴答点 参数 旋转 大小 # x 轴的设置 命名和大小 颜色 plt.xlabel('产地',fontsize=20,color='red') # y 轴的设置 plt.ylabel('电影数量',fontsize=20,color='red',rotation=90) # 显示柱状图上的数量 for a,b in zip(x,y,): plt.text(a,b+200,b,horizontalalignment='center',fontsize=15,color='red') # 保存图片 到指定的路径 plt.savefig('./电影柱状图.png') plt.show()

      图形展示:(5)

      (2.1)# 2 根据数据绘制每年电影上映数量的曲线图

    # (1) 按照年代将读取的mv 电影进行进行分组
    res = mv.groupby(['年代']).size().sort_index()  # 这个可以进行排序
    # mv['年代'].value_counts().sort_values()  
    res = res[:-2]  # 删除 最后两个数
    res

      (2)#  设置x z轴的值 和 y 轴的值

    x = res.index
    x
    # 设置y 轴
    y = res.values
    y

      (3)绘图

    # 大小是在绘图前
    plt.figure(figsize=(10,6))
    plt.plot(x,y)
    # x 轴的设置
    plt.xlabel('年代',fontsize=20,color='k')
    plt.ylabel('数量',fontsize=20,color='b')
    
    # x 轴 字体的设置
    plt.xticks(fontsize=20,color='r')
    plt.show()

     (4)图展示:最后的数据未完成统计

      

      # 第三 饼图的设计
      pd.cut?

      (1)

    # 获取电影时长
    time_res = mv['时长']
    time_res

      (2)

    # 分等份
    res = pd.cut(time_res,[0,60,90,120,140,1000])  # time_res 是带分割的源数据  后面是份额区间
    res# 分等份
    res = pd.cut(time_res,[0,60,90,120,140,1000])  # time_res 是带分割的源数据  后面是份额区间
    res

      (3)

    # 统计区间的电影数量
    res = res.value_counts()
    res
    x = res.index
    x
    y = res.values
    y

      (4)

    # plt.pie(y,labels= x)
    plt.title('电影时长分步图',fontsize=20)
    patchs, l_text, p_text = plt.pie(y, labels=x, autopct='%0.2f%%',)  # patchs 打补丁
    for p in p_text:  # p_text 代表内部的内容    %0.2f%%  0.2 表示保留两位浮点数  后面的% 是在区域内文本值后加%
        p.set_size(15)
        p.set_color('white')
    for l in l_text:
        l.set_size(13)
        l.set_color('r')
        
    plt.show()

      图形展示:

      # 4 直方图  

      (1)

    x = mv['评分']
    x

      (2)

    # plt.bar(x,y,color='blue')
    plt.hist(mv['评分'],bins=20, edgecolor='black',alpha=0.5, facecolor='red')
    plt.title('评分分布的直方图')
    plt.xlabel('评分范围')
    plt.ylabel('数量')
    # for a,b in zip(x,y):
    #     plt.text(a,b+200,b,horizontalalignment='center',fontsize=15,color='red')
        
    plt.show()

     评分图不是想做成的样子

  • 相关阅读:
    Oracle学习笔记--Oracle启动过程归纳整理
    Oracle 11g rac开启归档
    Oracle 11g rac中关于crsctl stop cluster/crs/has的区别
    Linux环境下安装MySQL 5.7.28
    将root用户权限赋予普通用户
    用Navicat Premium 连接mysql数据库时报错 -- 1130 Host xxxx is not allowed to connect to this MySQL server
    PCoIP vs HDX (CITRIX ICA)远程访问协议对比
    systemctl
    组播查询命令
    默认路由ip default-network和ip route 0.0.0.0 0.0.0.0区别
  • 原文地址:https://www.cnblogs.com/mofujin/p/11986243.html
Copyright © 2011-2022 走看看