首页 > 编程语言 > 详细

python学习笔记-绘制散点图

时间:2020-04-29 15:12:38      阅读:98      评论:0      收藏:0      [点我收藏+]

1.需求

读取excel的数据,绘制散点图,并保存图片。

2.所需要的包/模块

  • excel:xlrw
  • 可视化:matplotlib

3.具体代码实现

技术分享图片
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import xlrd

rbook = xlrd.open_workbook(testData.xlsx)
table = rbook.sheet_by_index(0)

nrows = table.nrows
ncols = table.ncols
a1_values = table.col_values(1)
a2_values = table.col_values(2)
a3_values = table.col_values(3)
a4_values = table.col_values(4)

#图1 
plt.figure(1,figsize=(16, 12))
plt.subplot(121)
plt.title("图a")
plt.xlabel("x")
plt.ylabel("y")
plt.rcParams[font.sans-serif]=[SimHei]
plt.rcParams[axes.unicode_minus] = False
plt.scatter(a1_values,a2_values,s=30)

#图2 
plt.figure(1,figsize=(16, 12))
plt.subplot(122)
plt.title("图2")
plt.xlabel("x")
plt.ylabel("y")
plt.rcParams[font.sans-serif]=[SimHei]
plt.rcParams[axes.unicode_minus] = False
plt.scatter(a3_values,a4_values,s=30)


plt.subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=0.3, hspace=0.3)
plt.savefig(test.png)
plt.show()
View Code

4.遇到的问题及解决办法

1)标题无法显示中文:

加以下两句可解决:

plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签
plt.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号

 

2)多图重叠:

调整子图之间的间距,通过设置图片之间的参数

plt.subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=0.3, hspace=0.3)

  • top、bottom、left、right:整个图距离上下左右边框的距离
  • wspace、hspace:调整各个子图之间的间距
    • wspace:调整子图之间的横向间距
    • hspace:调整子图之间纵向间距

3)savefig出现空白图片

plt.savefig()要在plt.show()之前

5.结果

技术分享图片

6.可优化部分/后续进程

1)标注每个点所对应的文本标签;

2)将离群点用别的颜色显示出来;

3)统一所有图的坐标系;

......

python学习笔记-绘制散点图

原文:https://www.cnblogs.com/serenelian/p/12801733.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!