Python应用实践:数据可视化

数据可视化即通过可视化表示数据,与数据挖掘有关,而数据挖掘是通过一些代码来探索海量数据集中的联系和规律。
通过一些简洁的方式呈现数据,让观看者能够明白海量数据集中的规律和意义。

笔者通过使用matploylib工具(是一个数学绘图库),制作简单的图表,如折线图,散点图。最后我们将基于漫步概念生成一个很有意思的数据集——一系列随机决策的图表。

一:安装matplotlib
笔者基于Windows系统进行实践,在此只表述在Windows系统下的各种操作。
在Windows系统中,首先安装Visual Studio,通过访问(http://dev.windows.com/),查找Visual Studio Community,下载并运行安装。之后,我们需要下载matplotlib安装程序。我们需要先访问(https://pypi.python.org/pypi/matplotlib/),查找与你使用的Python版本相匹配的wheel文件。
以笔者为例,我使用的是64位的Python3.7,则需要下载:
在这里插入图片描述
将.whl文件复制到你项目所在的文件夹中,打开命令窗口,切换到该项目文件夹中,在使用pip来安装matplotlib
在这里插入图片描述
二:测试matplotlib
安装好后,对安装进行测试。使用命令python启动终端会话,再尝试导入matplotlib:
在这里插入图片描述
完成以上工作,恭喜!可以愉快的敲代码了~~

三:绘制折线图
导入模块pyplot,指定别名plt:

import matplotlib.pyplot as plt

input_values = [1,2,3,4,5]
squares = [1,4,9,16,25]
plt.plot(input_values,squares,linewidth=5)
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)
plt.tick_params(axis='both',labelsize=14)
plt.show()

见证成果的时候到了,调试程序后:
在这里插入图片描述
四:使用scatter()绘制散点图
在此,就不展现单点的展示图了,我们将点数提升到1000个,并加入一些删除数据点轮廓,颜色映射等操作。

import matplotlib.pyplot as plt

x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]
//plt.scatter(x_values,y_values,c=(0.8,0.8,1),edgecolors='none',s=40)
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=40)


plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)

plt.axis([0,1100,0,1100000])
//plt.tick_params(axis='both',which='major',labelsize=14)

plt.show()
plt.savefig('squares_plot.png',bbox_inches='tight')

展示效果图:
在这里插入图片描述
五:随机漫步
什么是随机漫步?就是每一次行走都是完全随机的,没有明确的方向。就像是蚂蚁在晕头转向的情况下,沿随机方向行走所经过的路径。
首先我们创建RandomWalk()类,它随机地选择前进方向。这个类需要三个属性,分别用来存储随机漫步次数的变量,随机漫步经过的每个点的X和Y坐标。还包括两个方法,用来计算随机漫步经过的所有点。

from random import choice

class RandomWalk():
    def __init__(self, num_points = 5000):
        self.num_points = num_points

        self.x_values = [0]
        self.y_values = [0]
    def fill_walk(self):
        while len(self.x_values) < self.num_points:

            x_direction = choice([1,-1])
            x_distance = choice([0,1,2,3,4])
            x_step = x_direction * x_distance

            y_direction = choice([1,-1])
            y_distance = choice([0,1,2,3,4])
            y_step = y_direction * y_distance

            if x_step == 0 and y_step ==0:
                continue
            next_x = self.x_values[-1] + x_step
            next_y = self.y_values[-1] + y_step

            self.x_values.append(next_x)
            self.y_values.append(next_y)

然后,通过下面的代码将随机漫步的所有点绘制出来:

port matplotlib.pyplot as plt

from random_walk import RandomWalk

while True:
    rw = RandomWalk(50000)
    rw.fill_walk()

    point_numbers = list(range(rw.num_points))
    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor='none',s=1)

    plt.scatter(0,0,c='green',edgecolor='none',s=100)
    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)


    plt.show()

    keep_running = input("Make another walk? (y/n):")
    if keep_running == 'n':
        break

这里,我们已经将点数提高到50000点,给起点和终点进行染色处理,还进行了颜色映射,隐藏坐标轴等操作。
在这里插入图片描述
通过模拟一次50000点的随机漫步,每个点的大小设置为1,最后展现出来的就像云朵,非常的漂亮~~

以上就是笔者最近的工作整理~~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值