数据分析(一):matplotlib

from matplot import pyplot as plt #导入pyplot
x=
y= #形成数据点
plt.plot(x,y) #传入下x,y
plt.show()

考虑图片格式不够完善
1.设置图片大小
plt.figure(figsize=(20,8),dpi=80) #在画图之前用的语句,figsize是指图的宽和高,dpi指的是像素密度

2.保存到本地
plt.savefig(‘路径’) #画完图后写的语句,路径中写…svg格式适矢量图,放大后不会有锯齿

3.描述性息,比如x轴和y轴表示什么,图的title
plt.xlabel(’’)
plt.ylabel(’’)

4.调整x,y的刻度
plt.xticks(x) #把x中每个元素都画到x轴上
plt.xticks(range(2,25)) #还可以吧range处改成一个列表,还可以对列表取步长[::3]
plt.yticks(range(min(y),max(y)+3)),哈可以用plt.ylim()

5.线条的样式
plt.plot(x,y1,label=‘自己’,…)
plt.plot (x,y2,label=‘同座’,…)
plt.legend(prop=my_font) #注意这个参数,生成中文字体 产生图例
对plt.legend按ctrl b 可以看到源代码
图形很多,在matplotlib官网上,点example,点对应图形有案例,照着写

6.并标记出来的特殊的点

在这里插入图片描述
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager

my_font=font_manager.FontProperties(fname=“字体保存路径”)
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],ratation=45,fontproperties=my_font)
#上面这一步取步长(为了让x轴稀疏点),数字和字符串一一对应,数据长度一样,这样就可以把数值转换成字符串,ratation是旋转45度
plt.show()

在这里插入图片描述

绘制散点图
plt.scatter(x,y)
想要在一幅图中画出三月份和十月份气温
y3=[ ]
y10=[ ]
x3=range(1,32) #一个月的日期
x10=range(51,82) #把两个月在x轴上分隔开
plt.scatter(x3,y3,label=’ ')

_x=list(x3)+list(x10)
_xtick_labels=[“3月{}日”.format(i) for i in x3]
_xtick_labels += [“10月{}日”.format(i-50) for i in x10]

绘制条形图
a=["…"]
b=["…"]
_x=range(len(a))
_y=b
plt.bar(_x,b,width=0.2,color=“orange”) #width是宽度
plt.xticks(_x,a,fontproprties=…) #是数字变成字符窜且一一对应

bar绘制条形图,只接受含数字的可迭代对象,所以先用range(len(a)),
如果横着画,plt.barh(_x,b,height=…),这种画法可以有效避免x轴上字符太多拥挤
相应plt.yticks(_x,a,…)这里可以不要旋转

绘制直方图
plt.hist(a,num_bins) #a是数据表,后一个是组数
均匀组距=(max-min)//组数

在这里插入图片描述
在这里插入图片描述
from matplotlib import pyplot as plt
from matplotlib import font_manager

a=[…]

#计算组数
d=5
num_bins=(max(a)-min(b)//d)
plt.hist(a,num_bins) #这是频数分布图,plt.hist(…,…,normal=1) 这样就是频率分布图

#设置x轴刻度
plt.xticks(range(min(a),max(a)+d),d) 诺发现直方图越过x轴上最大值就需要加d
plt.grid()
#诺是每组有偏移,不完全符合x,刻度,则修改组距大小

原始数据没有经过统计的可以用plt,hist()处理,统计后的数据要可视化需要绘制条形图。
通常在坐标轴上设置刻度,把刻度变成列表,这样如果需要的话可以对列表进行增删。如: x=[10,20,30],发现刻度不够,要加一个50,
x+=[50] 即可

几个非常棒的数据处理框架:
百度echarts ; plotly(处理完的数据直接放入框架,照着文档写); seaborn

猜你喜欢

转载自blog.csdn.net/weixin_43414976/article/details/88285094