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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python使用多线程不断刷新网页的方法
Mar 31 Python
Python实现提取文章摘要的方法
Apr 21 Python
python:socket传输大文件示例
Jan 18 Python
解决Python requests 报错方法集锦
Mar 19 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
python实现WebSocket服务端过程解析
Oct 18 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
python time.strptime格式化实例详解
Feb 03 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 fsockopen伪造post与get方法的详解
2013/06/14 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
详解vue高级特性
2020/06/09 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Python中static相关知识小结
2018/01/02 Python
python3 拼接字符串的7种方法
2018/09/12 Python
Python文件路径名的操作方法
2019/10/30 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
环保建议书500字
2014/05/14 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
大学生社会实践感想
2015/08/11 职场文书
工作报告范文
2019/06/20 职场文书
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers