Python数据分析(一)
(一)制作折线图
折线图运用的是motplotlib库里的pyplot模块
题目:
一天10点到12点气温变化符合方程a=[random.randint(20,35) for i in range(120)],利用Python绘制折线图
from matplotlib import pyplot as plt
#导入pyplot模块
import random
#导入random库
x = range(120)
y = [random.randint(20,35) for i in range(120)]
plt.plot(x,y)
#传入x,y,运用plot绘制折线图
plt.show()
效果展示:
提出问题:
1.折线图太小(因为利用plot方法的默认设置)
2.折线图x轴刻度标记有误(应该是10点几分或11点几分)
3.折线图x,y轴没有标明标签,折线图缺少图表标题
就这几个问题我们对代码进行改进:
#导入pyplot模块
from matplotlib import pyplot as plt
#导入random库
import random
from matplotlib import font_manager
x = range(120)
y = [random.randint(20,35) for i in range(120)]
#修改折线图大小
plt.figure(figsize=(20,8),dpi=80)
'''
figure图形图标的意思,这里指我们画的图
figsize设置图片的宽和高
dpi(Dots Per Inch,每英寸点数),dpi越高,画出的图越清晰
'''
'''
由于pyplot模块不支持中文显示,我们还需要增加一个中文显示
需要用到matplotlib下的font_manger
'''
My_font = font_manager.FontProperties(fname=r'./FZQiaoMTJW.TTF')
#FontPROperties方法,fname导入字体文件路径(我在本地下载了一个FZQiaoMTJW.TTF字体,具体啥字体,忘了+=+)
#修改x轴刻度
_xtick_label = ['10点{}分'.format(i) for i in range(60)]
_xtick_label += ['11点{}分'.format(i) for i in range(60)]
plt.xticks(list(x)[::3], _xtick_label[::3], rotation=45, fontproperties=My_font)
'''
xticks是对x轴刻度的修改的方法(如:plt.xticks(range(0,120,20)))
ps:有xticks方法当然也有yticks方法
list(x)[::3]是列表取步长
rotation旋转字体
'''
#修改x,y轴标签
plt.xlabel('时间',fontproperties=My_font)
plt.ylabel('温度/摄氏度',fontproperties=My_font)
#修改图表标题
plt.title('某地某日10点到12点气温变化折线图',fontproperties=My_font,size=20)
#传入x,y,运用plot绘制折线图
plt.plot(x,y)
#展示折线图
plt.show()
#保存折线图
plt.savefig(r'./t1.png')
图片展示:
除去注释与空行,也就十几行代码,Python真的是简洁!
(不要重复造轮子 Stop Trying to Reinvent the Wheel)