Python3 数据可视化
使用matplotlib
安装第三方库:matplotlib,它是一个数学绘图库,可以绘制折线图、散点图等。
绘制折线图
plot()函数的语法格式:plot(x,y,格式字符串,**kward) ,其中“x,y,格式字符串”可以有多个,这样可以在同一坐标轴内绘制多条线。
参考:plot 教程
matplotlib库里有一个pyplot模块,此模块包含很多用于生成图表的函数。
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from matplotlib import pyplot as plt # 从matplotlib包里导入pyplot模块,并用plt作为该模块的别名。也可以用import matplotlib.pyplot as plt
y = [1, 4, 9, 16, 25] # 用于绘制图表的数据
plt.plot(y) # plot()函数根据数据绘图。当只提供一组数据时,默认以该组数据绘制y轴,以该组数据对应的索引值绘制x轴,故x轴数据为[0,1,2,3,4]
plt.show() # show()函数显示图表
修改标签文字和线条粗细:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from matplotlib import pyplot as plt # 从matplotlib包里导入pyplot模块,并用plt作为该模块的别名。也可以用import matplotlib.pyplot as plt
y = [1, 4, 9, 16, 25] # 用于绘制图表的数据
plt.plot(y, linewidth=5) # plot()函数根据数据绘图,参数linewidth设置绘制线条的粗细
plt.title("Square Numbers", fontsize=16) # title()设置图表的标题及字体大小
plt.xlabel("Value", fontsize=16) # xlabel()设置x轴标签文字及字体大小
plt.ylabel("Square of Value", fontsize=16) # ylabel()设置y轴标签文字及字体大小
plt.tick_params(axis='both', labelsize=13) # tick_params()函数用于设置刻度的样式
plt.show() # show()函数显示图表
同时给plot()两组数据,一组对应x轴,另一组对应y轴:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y, 'r-', linewidth=5) # 'r-'为格式字符串,表示用红色实现绘制线条
plt.title("Square Numbers", fontsize=16)
plt.xlabel("Value", fontsize=16)
plt.ylabel("Square of Value", fontsize=16)
plt.tick_params(axis='both', labelsize=13)
plt.show()
同一坐标轴内,绘制多条曲线:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]
plt.plot(x, y1, x, y2, 'r-', linewidth=5)
plt.show()
绘制散点图
使用scatter()绘制单个点:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
plt.scatter(2, 4) # scatter()根据坐标值(2,4)绘制单个点
plt.show()
添加输出样式:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
plt.scatter(2, 4, s=200) # scatter()根据坐标值(2,4)绘制单个点,参数s设置点的尺寸
plt.title("Square Numbers", fontsize=16) # 添加标题
plt.xlabel("value", fontsize=16) # 添加x轴标题
plt.ylabel("square of value", fontsize=16) # 添加y轴标题
plt.tick_params(axis='both', which='major', labelsize=13) # 设置刻度样式
plt.show()