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自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
Python实现的购物车功能示例
Feb 11 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
Python 创建守护进程的示例
Sep 29 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 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
人族 TERRAN 概述
2020/03/14 星际争霸
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
Javascript操作URL函数修改版
2013/11/07 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
AUC计算方法与Python实现代码
2020/02/28 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
安全保证书范文
2014/04/29 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
SQL Server内存机制浅探
2022/04/06 SQL Server