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中int()函数的用法浅析
Oct 17 Python
Python实现KNN邻近算法
Jan 28 Python
Python AES加密实例解析
Jan 18 Python
python学生信息管理系统
Mar 13 Python
python3爬虫之设计签名小程序
Jun 19 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
详解Python基础random模块随机数的生成
Mar 23 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
django列表筛选功能的实现代码
Mar 27 Python
Python Selenium自动化获取页面信息的方法
Aug 31 Python
用Python提取PDF表格的方法
Apr 11 Python
Python Django获取URL中的数据详解
Nov 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
解析link_mysql的php版
2013/06/30 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
求职简历中自我评价
2014/01/28 职场文书
同居协议书范本
2014/04/23 职场文书
教师业务培训方案
2014/05/01 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
Java实现聊天机器人完善版
2021/07/04 Java/Android
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers