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中将字典形式的数据循环插入Excel
Jan 16 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
Python日志模块logging基本用法分析
Aug 23 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
python如何求100以内的素数
May 27 Python
Python基于time模块表示时间常用方法
Jun 18 Python
简单了解Django项目应用创建过程
Jul 06 Python
详解python对象之间的交互
Sep 29 Python
分享Python获取本机IP地址的几种方法
Mar 17 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
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
angular 服务随记小结
2019/05/06 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
python中map()与zip()操作方法
2016/02/27 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
Python之web模板应用
2017/12/26 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
pygame实现飞机大战
2020/03/11 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
Jar包的作用是什么
2014/03/30 面试题
群胜软件Java笔试题
2012/09/29 面试题
Java语言程序设计测试题改错题部分
2014/07/22 面试题
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
小学元宵节活动总结
2015/02/06 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android