python数据可视化

发布时间:2019-05-06 22:18:13编辑:auto阅读(2277)

    1、安装matplotlib

    在 cmd 中键入 python -m pip install matplotlib,系统将自动安装,需要等一段时间,待完成后 python -m pip list ,显示

    敲黑板划重点:一定通过 cdm 指定具体安装文件夹。  cd 文件夹名 可进入指定文件夹。

    2、简易画图

    2.1 直线图

    import matplotlib.pyplot as ply
    '导入模块 pyplot,并自定义为ply'
    input_value = [1,2,3,4,5,6]
    squares =[1,4,9,16,25,36 ]
    ply.plot(input_value,squares,linewidth = 5)
    '画图命令,并接收input_value作为x,squares 作为y,linewidth指定线条粗细'
    ply.title("square numbers",fontsize= 24)
    '图标标题'
    ply.xlabel("value",fontsize = 12)
    '图表横坐标的标题 value,和字的大小 fontsize'
    ply.ylabel("squares",fontsize = 12)
    '图表横坐标的标题,和字的大小'
    ply.tick_params(axis="both",labelsize=14)
    "指定横纵坐标axis= 'both'上的标尺字的大小 labelsize"
    ply.show()
    '显示图形'

    输出图像:

     2.2 散点图

    import matplotlib.pyplot as plt
    x_value = list(range(0,100,2))
    y_value = [x**2 for x in x_value]
    '自动生成计算数据'
    print(x_value)
    print(y_value)
    plt.scatter(x_value,y_value,s=10)
    #plt.scatter(x_value,y_value,c=y_value,cmap=plt.cm.Blues,edgecolor='None',s=10)
    '参数c 设置成一个y值的列表,参数cmap 是采用的颜色映射的种类。参数edgecolor 是去掉散点的黑边'
    'scatter()显示点的大小是 s= 10,plot() 显示线条粗细的是linewidth= 10'
    plt.title("squares number",fontsize= 20)
    plt.xlabel("value",fontsize=10)
    plt.ylabel("square",fontsize=10)
    plt.tick_params(axis="both",which = 'major',labelsize= 10)

    plt.savefig('squares_scatter.png',bbox_inches= 'tight')
    '保存图片为squares_scatter.png,并且bbox_inches ='tighr'只保存图像,删除多余空白'
    plt.show()

    使用scatter()函数绘制散点图
    输出结果:

    颜色映射(colomap)是一系列颜色,他们从颜色渐变到结束颜色。

    输出结果:

    3、随机漫步:每次决策都是随机决定的。

     rand_walk.py

    from random import choice
    '从 random modules中导入choice'
    class RandomWalk(object):
    '创建一个类 RandomWalk().'
    def __init__(self,num_point = 5000):
    '初始化类的属性'
    self.num_point = num_point
    self.x_value=[ 0 ]
    self.y_value=[ 0 ]
    '指定开始位置'

    def fill_walk(self):
    '定义随机漫步的方法,'
    while len(self.x_value) < self.num_point:
    x_direction = choice([1,-1])
    '随机漫步的方向 1:向右 -1: 向左'
    x_distance = choice([0,1,2,3,4,5])
    '随机漫步的距离'
    x_step = x_direction * x_distance
    '随机漫步的 位移(大小和方向)'
    y_direction = choice([-1,1])
    y_distance = choice([0,1,2,3,4,5])
    y_step = y_direction * y_distance

    if x_step ==0 and y_step ==0:
    continue
    '避免原地踏步'

    next_x =self.x_value[-1] + x_step
    '确定 点的 新位置'
    next_y =self.y_value[-1] + y_step

    self.x_value.append(next_x)
    '将已经走过的点 添加到列表中'
    self.y_value.append(next_y)

     random_walk_show :

    import matplotlib.pyplot as plt
    '导入matplotlib.pilot 命名为 plt'
    from random_walk import RandomWalk
    "从random_walk 中导入 RandomWalk 类"
    while True:
    rw =RandomWalk()
    rw.fill_walk()
    '调用 fill_walk() 方法'

    point = list(range(rw.num_point))
    '生成和步数一样多的列表'
    plt.scatter(rw.x_value,rw.y_value,c=point,cmap = plt.cm.Reds,
    edgecolor = None,s=10)

    plt.scatter(0,0,c= "green",edgecolor= "None",s=20)
    plt.scatter(rw.x_value[-1],rw.y_value[-1],c="green",edgecolor = "None",s=50)
    '突出首个点 和 最后一个点 '

    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)
    '隐藏横纵坐标'

    plt.show()
    keep_running = input("make another walk? y or n :")
    if keep_running == 'n':
    break
    '判断时候继续 随机漫步'
    随机漫步生成的图:

                          

     

     

    
    
    
    

     

     








    补充:
    如果想使得输出的图像大小适合屏幕大小,可以使用:plt.figure(dpi=128,figsize=(20,10)) 其中向dpi传递是分辨率,向figsize传递以元组,指定绘图窗口的尺寸。(没看出区别多大!)

关键字