第一部分matplotlib
1,什么是matplotlib?
绘图工具。主要做数据可视化图表。
2,matplotlib是怎么样的?
matplotlib图像的三层结构:
图像层:plot 折线, scatter散点图,hist柱状图,pie饼图等方法绘制的图像
辅助显示层:axis坐标轴,axis label坐标轴名称,spines边距线,tick坐标轴刻度,tick label坐标轴刻度标签,title标题,grid网格线,legend图例
容器层:(最底层)画板Canvas,画布Figure,图表Axes
实例一,
画一个折线图
'画一个折线图'
from matplotlib import pyplot as plt
'导入pyplot包'
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,22,24,22,18,15]
'x轴和y轴的个数要相对应'
plt.plot(x,y)
plt.show()
添加改变图片大小和保存,但x轴的刻度没有发生改变
'画一个折线图'
from matplotlib import pyplot as plt
'导入pyplot包'
fig=plt.figure(figsize=(10,20),dpi=50)
'调整图像大小(长,宽),dpi参数使图像更清晰'
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,22,24,22,18,15]
'x轴和y轴的个数要相对应'
plt.plot(x,y)
plt.saxefig("./tupian.png")
'保存图片'
plt.show()
修改x轴的刻度
'画一个折线图'
from matplotlib import pyplot as plt
'导入pyplot包'
fig=plt.figure(figsize=(10,5),dpi=50)
'调整图像大小(长,宽),dpi参数使图像更清晰'
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,22,24,22,18,15]
'x轴和y轴的个数要相对应'
plt.plot(x,y)
plt.xticks(x[::2])
'[::2]表示有12个数,12/2取6个坐标'
'设置x轴的刻度2,6,10,14,18,20'
plt.show()
实例二
列表a表示10到12点的每一分钟的气温
a=[random.randint(20,35)for i in range(120)]
【补充知识点:
函数原型: numpy.random.uniform(low,high,size)
功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high】
【补充知识点:
函数format()通过位置来填充字符串
print(‘hello {0} i am {1}’.format(‘Kevin’,‘Tom’))
#hello Kevin i am Tom】
【补充知识点:
设置pycharm中中文字体的方法
pyplot.rcParams[‘font.family’]=‘Arial Unicode MS’
‘设置中文字体’】
from matplotlib import pyplot as plt
'导入pyplot包'
import random
plt.rcParams['font.family']='Arial Unicode MS'
'设置中文字体'
fig=plt.figure(figsize=(10,5),dpi=50)
'调整图像大小(长,宽),dpi参数使图像更清晰'
x=range(120)
random.seed(10)
'设置随机种子,让不同时候随机得到的结果都一样'
y=[random.uniform(20,35) for i in range(120)]
'如果i在range(120)中,与随机产生的(20,35)之间的数相互对应'
plt.plot(x,y)
_x_ticks=["10点{}分".format(i) for i in x if i<60]
'设置10点的横坐标,如果i<60,则i从x中取得'
_x_ticks+=["11点{}分".format(i-60) for i in x if i>60]
plt.xticks(x[::5],_x_ticks[::5],rotation=90)
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("10点到12点每一分钟的温度变化")
plt.show()