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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python递归遍历列表及输出的实现方法
May 19 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
图文详解WinPE下安装Python
May 17 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
Python文件时间操作步骤代码详解
Apr 13 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
python里反向传播算法详解
Nov 22 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 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结合md5实现的加密解密方法
2016/01/25 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
异步加载script的代码
2011/01/12 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
python二进制文件的转译详解
2019/07/03 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
python读取Excel表格文件的方法
2019/09/02 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
Python常用类型转换实现代码实例
2020/07/28 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
应届生服务员求职信
2013/10/31 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
初三语文教学计划
2015/01/22 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
大学生见习总结报告
2015/06/24 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
如何使用python包中的sched事件调度器
2022/04/30 Python