python学习笔记-绘制散点图

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)统一所有图的坐标系;

......

猜你喜欢

转载自www.cnblogs.com/serenelian/p/12801733.html
今日推荐