Python数据分析-折线图
·
'''
from matplotlib import pyplot as plt
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,27,22,18,15]
#绘图
plt.plot(x, y)
#展示图形
plt.show()
'''
#设置图片大小
'''
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(20,8),dpi=80)
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x, y)
#plt.savefig("./t1.png")--表示为:保存图片。另一种保存方式:.svg可以不失真。
plt.show()
'''
#设置x轴,设置y轴
'''
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(10,4),dpi=80)
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x, y)
plt.xticks(x)
plt.yticks(range(min(y),max(y)+1))
#上述代码也可以更换为:_xtick_labels = [i/2 for i in range(4,49)]
plt.show()
'''
#问题:如果列表a表示10点到12点的每一分钟的气温,绘制折线图观察每一分钟气温的变化情况
#a=[random.randint(20,35)for i in range(120)]
'''
import matplotlib.pyplot as plt
import random
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.plot(x,y)
plt.show()
#思考:新问题:对于X轴来说,分钟没有大于60的
'''
#修改:调整X的刻度
'''
import matplotlib.pyplot as plt
import random
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#调整刻度
_x=list(x)[::10]
_xtick_labels = ["10:{}".format(i) for i in _x]
plt.xticks(_x,_xtick_labels)
plt.show()
'''
#仍然没有解决原有问题,升级为:
'''
import matplotlib.pyplot as plt
import random
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#调整刻度
_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=90)
#rotation旋转的度数
plt.show()
#结果表示是理想的,但是没有中文,仍需改进
'''
#升级:
#明白不显示中文的原因:matplotlib默认不支持中文字符
#设置中文
'''
import matplotlib.pyplot as plt
import random
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#调整刻度
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
#中文设置
plt.rcParams["font.sans-serif"]=['SimHei']
plt.rcParams['font.serif']=['SimHei']
#取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45)
#rotation旋转的度数
#扩充:添加描述信息
plt.xlabel(' 时间')
plt.ylabel("温度 单位(摄氏度)")
plt.title("10点到12点每分钟的气温变化情况")
plt.show()
'''
#练习:
'''
假设大家在30岁的时候,根据自己的实际情况,统计出来了
从11岁到30岁每年交的男女朋友的数量如列表a,
请绘制出该数据的折线图,以便分析自己每年交男女朋友的数量走势
a=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
要求:y轴表示个数, x轴表示岁数
'''
#简单版
'''
import matplotlib.pyplot as plt
x=range(11,31)
y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.rcParams["font.sans-serif"]=['SimHei']
plt.rcParams['font.serif']=['SimHei']
plt.xticks(x)
plt.yticks(y)
plt.xlabel('青春')
plt.ylabel("男女朋友数量")
plt.title("11岁-30岁每年交男女朋友的数量走势")
plt.plot(x,y)
plt.show()
'''
#高级版
#绘制网格
'''
import matplotlib.pyplot as plt
x=range(11,31)
y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.rcParams["font.sans-serif"]=['SimHei']
plt.rcParams['font.serif']=['SimHei']
plt.xticks(x)
plt.yticks(y)
plt.xlabel('青春')
plt.ylabel("男女朋友数量")
plt.title("11岁-30岁每年交男女朋友的数量走势")
plt.plot(x,y)
#绘制网格
plt.grid()
#可以更改x,y轴的稀疏
#也可改变网格透明度 --》 plt.grid(alpha=0.4)
plt.show()
'''
#练习升级:
'''
统计你和你同桌各自从11岁-30岁的.......
如列表a和b,
请在一个图内绘制出折线图,以便比较差异,同时分析走势
a=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b=[1,0,3,1,1,1,1,1,1,1,1,2,1,3,2,2,2,2,2,2]
要求不变
'''
#简单版
'''
import matplotlib.pyplot as plt
x=range(11,31)
y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
z=[1,0,3,1,1,1,1,1,1,1,1,2,1,3,2,2,2,2,2,2]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.rcParams["font.sans-serif"]=['SimHei']
plt.rcParams['font.serif']=['SimHei']
plt.xticks(x)
plt.yticks(y)
plt.xlabel('青春')
plt.ylabel("男女朋友数量")
plt.title("11岁-30岁每年交男女朋友的数量走势")
plt.plot(x,y)
plt.plot(x,z)
plt.grid()
plt.show()
'''
#高级版
#一眼看清自己与同桌:标注
import matplotlib.pyplot as plt
x=range(11,31)
y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
z=[1,0,3,1,1,1,1,1,1,1,1,2,1,3,2,2,2,2,2,2]
fig=plt.figure(figsize=(20,8),dpi=80)
plt.rcParams["font.sans-serif"]=['SimHei']
plt.rcParams['font.serif']=['SimHei']
plt.xticks(x)
plt.yticks(y)
plt.xlabel('青春')
plt.ylabel("男女朋友数量")
plt.title("11岁-30岁每年交男女朋友的数量走势")
plt.plot(x,y,label='自己')
plt.plot(x,z,label='同桌')
#plot中可以传颜色,改变线条的风格,改变线条粗细,改变透明度
#plt.plot(x,y,label='自己',color="orange",linestyle=':')
#plt.plot(x,z,label='同桌',color="cyan",linestyle="-.")
#添加图例
plt.legend()
#图例的位置可以改变
#plt.legend(loc="upper left")
plt.grid()
#网格的线条风格也可以改变
#plt.grid(alpha=0.4,linestyle=':')
plt.show()
#如果不清楚某个函数的意思,可以ctrl+B选择函数,进行查看
#扩展:对比分析常用统计图
'''
折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
特点:能够显示数据的变化趋势,反映事物的变化情况。(变化
直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。
一般用横轴表示数据范围,纵轴表示分布情况。
特点:绘制连续性的数据,展示一组或者多组数据的分布情况(统计
条形图:排列在工作表的列或行中的数据可以绘制到条形统计图中
特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别(统计
散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联
或总结坐标点的分布模式
特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律
'''
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)