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中的fabs()方法的使用
May 14 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
python中字典(Dictionary)用法实例详解
May 30 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
python3实现名片管理系统
Nov 29 Python
Python hashlib常见摘要算法详解
Jan 13 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
django 读取图片到页面实例
Mar 27 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 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
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python中函数默认值使用注意点详解
2016/06/01 Python
Python实现两款计算器功能示例
2017/12/19 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
公司领导推荐信
2013/11/12 职场文书
新学期开学寄语
2014/01/18 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
计生个人工作总结
2015/02/28 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript