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中的Matplotlib模块入门教程
Apr 15 Python
Python类的动态修改的实例方法
Mar 24 Python
Python中正则表达式详解
May 17 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
django 实现电子支付功能的示例代码
Jul 25 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
python opencv实现图像边缘检测
Apr 29 Python
python对csv文件追加写入列的方法
Aug 01 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
keras K.function获取某层的输出操作
Jun 29 Python
Python txt文件如何转换成字典
Nov 03 Python
python实现监听键盘
Apr 26 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
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
Exjs 入门篇
2010/04/07 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
详解python对象之间的交互
2020/09/29 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
python 自动识别并连接串口的实现
2021/01/19 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
Julep官网:美容产品和指甲油
2017/02/25 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
2014年教师节座谈会发言稿
2014/09/10 职场文书
营销计划书范文
2015/01/17 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL