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中dict与set的使用
Aug 10 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
python3实现逐字输出的方法
Jan 23 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Python小白垃圾回收机制入门
Jun 09 Python
通过Python把学姐照片做成拼图游戏
Feb 15 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
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php中spl_autoload详解
2014/10/17 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
js实现秒表计时器
2019/12/16 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
python选择排序算法的实现代码
2013/11/21 Python
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
python pygame实现方向键控制小球
2019/05/17 Python
在python中画正态分布图像的实例
2019/07/08 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
税务会计岗位职责
2014/02/18 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
协议书样本
2014/04/23 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP