A. python数据分析:可视化
本文是《数据蛙三个月强化课》的第二篇总结教程,如果想要了解 数据蛙社群 ,可以阅读 给DataFrog社群同学的学习建议 。温馨提示:如果您已经熟悉python可视化内容,大可不必再看这篇文章,或是之挑选部分文章
对于我们数据分析师来说,不仅要自己明白数据背后的含义,而且还要给老板更直观的展示数据的意义。所以,对于这项不可缺少的技能,让我们来一起学习下吧。
画图之前,我们先导入包和生成数据集
我们先看下所用的数据集
折线图是我们观察趋势常用的图形,可以看出数据随着某个变量的变化趋势,默认情况下参数 kind="line" 表示图的类型为折线图。
对于分类数据这种离散数据,需要查看数据是如何在各个类别之间分布的,这时候就可以使用柱状图。我们为每个类别画出一个柱子。此时,可以将参数 kind 设置为 bar 。
条形图就是将竖直的柱状图翻转90度得到的图形。与柱状图一样,条形图也可以有一组或多种多组数据。
水平条形图在类别名称很长的时候非常方便,因为文字是从左到右书写的,与大多数用户的阅读顺序一致,这使得我们的图形容易阅读。而柱状图在类别名称很长的时候是没有办法很好的展示的。
直方图是柱形图的特殊形式,当我们想要看数据集的分布情况时,选择直方图。直方图的变量划分至不同的范围,然后在不同的范围中统计计数。在直方图中,柱子之间的连续的,连续的柱子暗示数值上的连续。
箱线图用来展示数据集的描述统计信息,也就是[四分位数],线的上下两端表示某组数据的最大值和最小值。箱子的上下两端表示这组数据中排在前25%位置和75%位置的数值。箱中间的横线表示中位数。此时可以将参数 kind 设置为 box。
如果想要画出散点图,可以将参数 kind 设置为 scatter,同时需要指定 x 和 y。通过散点图可以探索变量之间的关系。
饼图是用面积表示一组数据的占比,此时可以将参数 kind 设置为 pie。
我们刚开始学习的同学,最基本应该明白什么数据应该用什么图形来展示,同学们来一起总结吧。
B. python怎么画折线图
一、环境准备
linux ubuntu 下需安装下面三个包:
Numpy, Scipy,Matplotlib
分别输入下面的代码进行安装:
[plain]view plain
pipinstallnumpy
pipinstallscipy
sudoapt-getinstallpython-matplotlib
测试是否安装成功
[html]view plain
python
>>>importpylab
如果没有报错则安装成功
二、开始画图
1. 画最简单的直线图
代码如下:
[python]view plain
importnumpyasnp
importmatplotlib.pyplotasplt
x=[0,1]
y=[0,1]
plt.figure()
plt.plot(x,y)
plt.savefig("easyplot.jpg")
结果如下:
C. python绘折线图(数据很多)很难看
数据使用前要清洗,去除无效数据。
如果这些数据都是有效数据,只是你不想显示那些过份异常的数据,那么,就进行去噪处理。
去噪分两步:检测噪点,噪点修正。
对于整体连续,总体范围大的数据集,最简单的检测噪点的办法就是邻值法,对于第n取相邻的k个值:p[n-k,],p[n-k+1]...p[n-1]
对它们加权平均,得到标准点,上下浮动一定范围,如果p[k]不在这个范围内就是异常点
对应的噪点修正可以使用类似的过程,局部噪点回归法。
这些一般来说都不是很实现的东西,对于数据集结构的不同,没有必要做成通用的包,所以你只有自己实现。
D. python画折线图
#encoding=utf-8
importmatplotlib.pyplotasplt
frompylabimport*#支持中文
mpl.rcParams['font.sans-serif']=['SimHei']
names=['5','10','15','20','25']
x=range(len(names))
y=[0.855,0.84,0.835,0.815,0.81]
y1=[0.86,0.85,0.853,0.849,0.83]
#plt.plot(x,y,'ro-')
#plt.plot(x,y1,'bo-')
#pl.xlim(-1,11)#限定横轴的范围
#pl.ylim(-1,110)#限定纵轴的范围
plt.plot(x,y,marker='o',mec='r',mfc='w',label=u'y=x^2曲线图')
plt.plot(x,y1,marker='*',ms=10,label=u'y=x^3曲线图')
plt.legend()#让图例生效
plt.xticks(x,names,rotation=45)
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel(u"time(s)邻居")#X轴标签
plt.ylabel("RMSE")#Y轴标签
plt.title("Asimpleplot")#标题
plt.show()