数据分析只是拓扑图:
数据分析:用适当的方法对收集来的大量数据进行数据分析,帮助人们做出判读,一边采取适当的行动。
提出问题——准备数据——分析数据——获得结论——成果可视化
好处:能进行可视化,更直观的呈现,是数据更加客观、更具说服力
横坐标与纵坐标的数目应相同
from matplotlib import pyplot as plt #导入pyplot
fig2=plt.figure(figsize=(20,8),dpi=80)
#figure图形图标的意思,在这里指的就是我们画的图
#通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例
x=range(2,26,2) #2到26,步长为2,即2,4,6,,,,,22,24.
y=[15,13,14,5,17,20,25,26,26,24,22,18]
plt.plot(x,y) #传入x和y,通过plot绘制出折线图
plt.xticks(range(0,26,2)) #绘制x轴刻度,也可以穿个列表
#_xtick_labels=[i/2 for i in range(4,49)]
#plt.xticks(_xtick_labels[8:20:3]) #从8到20,步长为3
#plt.yticks(range(0,10,3)) #y也可以绘制刻度
plt.yticks(range(min(y),max(y)+2)) #max()只能取到第二大的数
plt.savefig("./fig_size.png") #保存图片
#可以保存为svy格式,svg是矢量图片格式,放大不会有锯齿
plt.show() #在执行程序时展示图形
matplotlib默认不支持中文字体,因为默认的英文字体无法显示汉字
查看linux/mac下面支持的字体
fc-list :查看支持的字体
fc-list:lang=zh :查看支持的中文字体(命令中冒号前面有空格)
通过matplotlib.rc可以修改
import matplotlib.pyplot as plt
import random #导入random
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
#plt.rcParams['axes.unicode_minus']
x=range(0,120) #0到120的整数,步长为1
y=[random.randint(20,35) for i in range(120)]#产生20到35之间的书记整数,循环120次
#print(y)
plt.figure(figsize=(18,8), dpi=100)
plt.plot(x,y)
#_x=list(x)[::10] #将x进行强制类型转换,转为列表,并选步长为10
_xtick_labels=["10点{}分".format(i) for i in range(60)]
_xtick_labels+=["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=60)
plt.xlabel("时间")
plt.ylabel("温度(单位:℃)")
plt.title("10点到12 点每分钟的气温变化情况")
plt.grid(alpha=0.1) # 设置网格 alpha透明度,值为0到1
plt.show()
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
#plt.rcParams['axes.unicode_minus']
plt.figure(figsize=(16,6),dpi=80)
y_1=[1,2,0,5,4,9,2,5]
y_2=[4,5,2,6,1,7,9,0]
x=range(10,18)
plt.figure(figsize=(18,8),dpi=80)
plt.plot(x,y_1,label="自己")
plt.plot(x,y_2,label="同桌")
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
plt.savefig("./age200.png")
plt.legend(loc="upper left")
plt.grid(alpha=0.3)
plt.show()