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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
Python random模块用法解析及简单示例
Dec 18 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
pytorch 预训练层的使用方法
Aug 20 Python
python绘制封闭多边形教程
Feb 18 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python实现自定义日志的具体方法
May 28 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程序实现支持页面后退的两种方法
2008/06/30 PHP
php树型类实例
2014/12/05 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
json数据的列循环示例
2013/09/06 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
python字典多条件排序方法实例
2014/06/30 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
出国留学经济担保书
2014/04/01 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
家庭困难证明
2014/10/12 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
红旗渠导游词
2015/02/09 职场文书
教师学期末个人总结
2015/02/13 职场文书
小学感恩主题班会
2015/08/12 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
MySQL基础(二)
2021/04/05 MySQL
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python