Python散点图与折线图绘制过程解析


Posted in Python onNovember 30, 2019

这篇文章主要介绍了Python散点图与折线图绘制过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在数据分析的过程中,经常需要将数据可视化,目前常使用的:散点图 折线图

需要import的外部包 一个是绘图 一个是字体导入

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

在数据处理前需要获取数据,从TXT XML csv excel 等文本中获取需要的数据,保存到list

def GetFeatureList(full_path_file):
  file_name = full_path_file.split('\\')[-1][0:4]
  # print(file_name)
  # print(full_name)
  K0_list = []
  Area_list = []
  all_lines = []
  f = open(full_path_file,'r')
  all_lines = f.readlines()
  lines_num = len(all_lines)
  # 数据清洗
  if lines_num > 5000:
    for i in range(3,lines_num-1):
      temp_k0 = int(all_lines[i].split('\t')[1])
      if temp_k0 == 0:
        K0_list.append(ComputK0(all_lines[i]))
      else:
        K0_list.append(temp_k0)
      Area_list.append(float(all_lines[i].split('\t')[15]))
    # K0_Scatter(K0_list,Area_list,file_name)
  else:
    print('{} 该样本量少于5000'.format(file_name))
  return K0_list, Area_list,file_name

绘制两组数据的散点图,同时绘制两个散点图,上下分布在同一个图片中

def K0_Scatter(K0_list, area_list, pic_name):
  plt.figure(figsize=(25, 10), dpi=300)
  # 导入中文字体,及字体大小
  zhfont = FontProperties(fname='C:/Windows/Fonts/simsun.ttc', size=16)
  ax = plt.subplot(211)
  # print(K0_list)
  ax.scatter(range(len(K0_list)), K0_list, c='r', marker='o')
  plt.title(u'散点图', fontproperties=zhfont)
  plt.xlabel('Sampling point', fontproperties=zhfont)
  plt.ylabel('K0_value', fontproperties=zhfont)
  ax = plt.subplot(212)
  ax.scatter(range(len(area_list)), area_list, c='b', marker='o')
  plt.xlabel('Sampling point', fontproperties=zhfont)
  plt.ylabel(u'大小', fontproperties=zhfont)
  plt.title(u'散点图', fontproperties=zhfont)
  # imgname = 'E:\\' + pic_name + '.png'
  # plt.savefig(imgname, bbox_inches = 'tight')
  plt.show()

散点图显示

Python散点图与折线图绘制过程解析

绘制一个折线图 每个数据增加标签

def K0_Plot(X_label, Y_label, pic_name):
  plt.figure(figsize=(25, 10), dpi=300)
  # 导入中文字体,及字体大小
  zhfont = FontProperties(fname='C:/Windows/Fonts/simsun.ttc', size=16)
  ax = plt.subplot(111)
  # print(K0_list)
  ax.plot(X_label, Y_label, c='r', marker='o')
  plt.title(pic_name, fontproperties=zhfont)
  plt.xlabel('coal_name', fontproperties=zhfont)
  plt.ylabel(pic_name, fontproperties=zhfont)
  # ax.xaxis.grid(True, which='major')
  ax.yaxis.grid(True, which='major')
  for a, b in zip(X_label, Y_label):
    str_label = a + str(b) + '%'
    plt.text(a, b, str_label, ha='center', va='bottom', fontsize=10)
  imgname = 'E:\\' + pic_name + '.png'
  plt.savefig(imgname, bbox_inches = 'tight')
  # plt.show()

Python散点图与折线图绘制过程解析

绘制多条折线图

def K0_MultPlot(dis_name, dis_lsit, pic_name):
  plt.figure(figsize=(80, 10), dpi=300)
  # 导入中文字体,及字体大小
  zhfont = FontProperties(fname='C:/Windows/Fonts/simsun.ttc', size=16)
  ax = plt.subplot(111)
  X_label = range(len(dis_lsit[1]))
  p1 = ax.plot(X_label, dis_lsit[1], c='r', marker='o',label='Euclidean Distance')
  p2 = ax.plot(X_label, dis_lsit[2], c='b', marker='o',label='Manhattan Distance')
  p3 = ax.plot(X_label, dis_lsit[4], c='y', marker='o',label='Chebyshev Distance')
  p4 = ax.plot(X_label, dis_lsit[5], c='g', marker='o',label='weighted Minkowski Distance')
  plt.legend()
  plt.title(pic_name, fontproperties=zhfont)
  plt.xlabel('coal_name', fontproperties=zhfont)
  plt.ylabel(pic_name, fontproperties=zhfont)
  # ax.xaxis.grid(True, which='major')
  ax.yaxis.grid(True, which='major')
  for a, b,c in zip(X_label, dis_lsit[5],dis_name):
    str_label = c + '_'+ str(b)
    plt.text(a, b, str_label, ha='center', va='bottom', fontsize=5)
  imgname = 'E:\\' + pic_name + '.png'
  plt.savefig(imgname,bbox_inches = 'tight')
  # plt.show()

Python散点图与折线图绘制过程解析

图形显示还有许多小技巧,使得可视化效果更好,比如坐标轴刻度的定制,网格化等

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
下载糗事百科的内容_python版
Dec 07 Python
Windows下安装python2.7及科学计算套装
Mar 05 Python
单链表反转python实现代码示例
Feb 08 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
python实现一组典型数据格式转换
Dec 15 Python
python实现Virginia无密钥解密
Mar 20 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
Python如何执行系统命令
Sep 23 Python
python 对象真假值的实例(哪些视为False)
Dec 11 Python
Python基础之进程详解
May 21 Python
Python OpenCV视频截取并保存实现代码
Nov 30 #Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 #Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 #Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 #Python
python os.path.isfile 的使用误区详解
Nov 29 #Python
python实现矩阵和array数组之间的转换
Nov 29 #Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 #Python
You might like
967 个函式
2006/10/09 PHP
桌面中心(三)修改数据库
2006/10/09 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python实现rest请求api示例
2014/04/22 Python
Python 绘图和可视化详细介绍
2017/02/11 Python
python3.7 的新特性详解
2019/07/25 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
大二法学专业职业生涯规划范文
2014/02/12 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
艺术教育实施方案
2014/05/03 职场文书
党性教育心得体会
2014/09/03 职场文书
职工年度考核评语
2014/12/31 职场文书
休学证明范本
2015/06/19 职场文书
公司开业主持词
2015/07/02 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js