怎样成为优秀的数据可视化工程师( 三 )
■网友
python作图还不错,比如最最基本的matplotlib库,我们介绍在数据分析中使用非常高频的几种图的形式。
首先说散点图,散点图和线形图最大的区别,顾名思义就是这种图形不再由线段进行连接,而是由一个一个独立的点、圆圈或者其他指定的形状构成:import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0,10,100)plt.scatter(x, np.sin(x), marker=\u0026#39;o\u0026#39;)plt.grid()plt.show()
实质上,使用plt.sactter相比plt.plot在创建散点图时的优势是具有更高的灵活性,他可以单独控制每一个散点的不同属性(颜色、大小等),这样就可以通过(坐标位置、颜色、大小)这些多维信息,来表征更多的数据特征,并进行更精细的控制。
我们来绘制这样一组散点图,每个点的位置坐标(x,y)是服从标准正态分布的随机值,点的颜色灰度值是位于(0,1)空间中的随机样本,点的大小是随机值得1000倍,单位是像素。这样通过位置、大小、颜色等多维信息,就能更丰富的表现出散点数据背后所蕴含的多重信息了。import numpy as npimport matplotlib.pyplot as pltrng = np.random.RandomState(0)x = rng.randn(100)y = rng.randn(100)colors = rng.rand(100)sizes = 1000 * rng.rand(100)plt.scatter(x,y,c=colors,s=sizes,alpha=0.3)plt.colorbar()plt.grid(True)plt.show()
从图中,我们可以直观看出散点的大小所对应的数量信息,右侧添加的颜色条,同来指示颜色所对应的数值信息。这类多颜色与多特征的散点图在探索与演示数据时非常有用。
第二类我们要说的图形类型是频次直方图。
我们先画一个最简单的频次直方图,生成1000个服从标准正态分布的随机变量,然后观察他们在每个点的出现次数。import numpy as npimport matplotlib.pyplot as pltdata = https://www.zhihu.com/api/v4/questions/41956800/np.random.randn(1000)ret = plt.hist(data)print(ret)plt.show()(array(), array(), /u0026lt;a list of 10 Patch objects/u0026gt;)
最简单的频次直方图仔细琢磨一下其实会有一些疑问,这个图里面只有10个数据条,但是很显然1000个随机变量的取值显然不止10个。在默认情况下,hist函数会将所有的随机变量取值划分为10个取值范围,然后统计每个取值范围内的变量数,并绘就此图。
我们可以从程序结果看出,hist函数是有返回值的,返回的是一个2元元组,元组第一个ndarray对象是数据条的高度序列,元组第二个ndarray对象是每个数据条的边缘横坐标。
其实如果我们只想得到上述返回数据,而并不想画图,那么可以用下面的方法即可。import numpy as npimport matplotlib.pyplot as pltdata = https://www.zhihu.com/api/v4/questions/41956800/np.random.randn(1000)ret = np.histogram(data)print(ret)plt.show()(array(, dtype=int64), array())那么我们可以通过指定hist函数中的一些参数,来个性化的调整频次直方图的显示效果。
通过bins参数可以指定数据条的个数;normed可以指定是否将频数进行标准化,alpha指定透明度;还有histtype、color、edgecolor等线性、颜色等参数
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 河北衡水365百姓故事汇优秀作品展示生动展现社会各界感人故事
- 盐城工学院6门课程成为首批国家级一流本科课程
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车知识|押宝全新造型,东风雪铁龙新C5能否成为神龙公司“救世主”
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
