本文首发地址:
https://yishuihancheng.blog.csdn.net/article/details/99462001
欢迎关注我的博客【Together_CZ】,我是沂水寒城!
博主已经开通微信公众号啦,欢迎关注哈!
![38d038efae92b8dcb21dedd7d6a33446.png](https://i-blog.csdnimg.cn/blog_migrate/15fefb128949f1bd517262eca5cf2001.jpeg)
入门数据科学这一行以来,陆陆续续学到了很多专业领域的知识,数据可视化就是其中的一部分,在Python中提供数据可视化的工具也不少,但是最为著名的莫过于matplotlib了,该模块提供了很高级和非常友好的使用方式,使用起来也是非常方便的,可以绘制出来很多漂亮美观的图像。
我们手工绘制的图像自然是没有办法跟计算机绘制的图像相提并论了,这倒不是说我们手工绘制的不如机器绘制的,而是因为二者的对比不在一个尺度上面,如果说要论专业性的话我们肯定是比不过机器的,毕竟机器就是专门用来计算的;但是如果说要论想象力或者是审美性的话,机器绘图的能力可能就没有那么强大或者是不如我们的了。
今天花了点时间来体验一把matplotlib带来的快感,因为我突然发现matplotlib可以绘制卡通、手绘风格的图像,这个真的是很不错的了,当然要来尝试尝试了。
我们从最简单的散点图开始演示,具体实现如下:
def scatterDemo(): ''' 散点图 ''' x=list(linspace(0,10)) y=list(sin(linspace(0,10))) plt.figure(figsize=(10,6)) plt.subplot(1,2,2) plt.scatter(x,y,marker='o',color='green',s=40,label='Serious') plt.xlabel('Serious') plt.xkcd() plt.subplot(1,2,1) plt.scatter(x,y,marker='+',color='y',s=40,label='Play') plt.xlabel('Play') plt.show()
结果如下:
![afd29a772e086272c7932d2db19b2185.png](https://i-blog.csdnimg.cn/blog_migrate/903b4a996e0cf6c1ea6755e01c21c01f.jpeg)
接下来我们先拿正弦曲线来做演示,具体实现如下:
def simpleDemo1(): ''' 简单的手绘风格与原始风格对比下的正弦曲线 ''' plt.figure(figsize=(10,6)) plt.subplot(1,2,2) plt.plot(sin(linspace(0, 10))) plt.xlabel('Serious') plt.xkcd() plt.subplot(1,2,1) plt.plot(sin(linspace(0, 10))) plt.xlabel('Play') plt.show()
结果如下:
![cbe96a859e197e42cd4cbc402a21cb7f.png](https://i-blog.csdnimg.cn/blog_migrate/4a90d5b857eb4a77be7d3802f7f37b60.jpeg)
看到这里你们的第一印象是什么呢?会觉得左边的好还是右边的好呢?
接下来我们绘制一个经典的统计学分布模型——泊松分布,具体代码实现如下:
def histDemo(): ''' 直方图Demo ''' data=np.random.poisson(lam=5,size=200) mean=sum(data)/len(data) data_range=(min(data),max(data)) poisson=scipy.stats.poisson(mean) x=range(data_range[0], data_range[1]+1) poisson_distri=poisson.pmf(x) plt.figure(figsize=(10,6)) plt.subplot(1,2,2) plt.hist(data,normed=True,bins=max(data)+1,range=(-0.5,max(data)+0.5),color='green') plt.plot(poisson_distri,'o-') plt.title('poissonDistrbution') plt.xlabel('Serious') plt.xkcd() plt.subplot(1,2,1) plt.hist(data,normed=True,bins=max(data)+1,range=(-0.5,max(data)+0.5),color='green') plt.plot(poisson_distri,'o-') plt.title('poissonDistrbution') plt.xlabel('Play') plt.show()
![61904b4b45f1c23d3a4285b8fae7803f.png](https://i-blog.csdnimg.cn/blog_migrate/2d725ce2f697d032a02953b3ca3608bf.jpeg)
同样的问题:看到这里你们的第一印象是什么呢?会觉得左边的好还是右边的好呢?
提到泊松分布就不得不提及我们使用频度非常高的另一个分布——正态分布模型,我们看下面的具体实现:
def normDemo(num=1000): ''' 正态分布 ''' data=np.random.randn(num) plt.figure(figsize=(10,6)) plt.subplot(1,2,2) plt.hist(data,bins=40,normed=0,facecolor="g