数据可视化<第二天>

作者: 人生苦短_我用Python | 来源:发表于2018-04-11 13:34 被阅读21次

    5.使用scatter()绘制一系列点

    要绘制一系列点,可向scatter()传递两个分别包含x值和y值的列表
    如下:

    import matplotlib.pyplot as plt
    
    plt.rcParams['font.family'] = ['STFangsong']
    
    x_values = [1,2,3,4,5]
    y_values = [1,4,9,16,25]
    
    plt.scatter(x_values,y_values,s=100)
    
    #设置图表标题,并给坐标轴加上标签
    plt.title('示例折线图',fontsize=24)
    plt.xlabel('value',fontsize=14)
    plt.ylabel('square of value',fontsize=14)
    
    plt.show()
    

    列表x_values包含要计算其平方和的数字
    而列表y_values包含前述每个数字的平方值
    将这些列表传递给scatter()时
    matplotlib依次从每个列表中读取一个值来绘制一个点
    要绘制的坐标分别为(1,1),(2,4),(3,9),(4,16),(5,25)
    最终结果如图所示:


    6,自动计算数据

    手工计算列表要包含的值可能效率低下,需要绘制的点很多时尤其如此
    可以不必手工计算包含点坐标的列表,而让python循环来替我们完成这种计算
    下面是绘制1000个点的代码:

    import matplotlib.pyplot as plt
    
    plt.rcParams['font.family'] = ['STFangsong']
    
    x_values = list(range(1,1001))
    y_values = [x**2 for x in x_values]
    
    plt.scatter(x_values,y_values,s=10)
    
    #设置图表标题,并给坐标轴加上标签
    plt.title('示例折线图',fontsize=24)
    plt.xlabel('value',fontsize=14)
    plt.ylabel('square of value',fontsize=14)
    
    #设置每个坐标轴的取值范围
    
    plt.axis([0,1100,0,1100000])
    plt.show()
    

    我们首先创建了一个包含x值的列表,其中包含数字1~1000
    接下来是一个生成y值的列表解析,它遍历x值(for x in x_values)
    计算平方值(x**2),并将结果存储到列表y_values中
    然后,将输入列表和输出列表传递给scatter()
    由于这个数据集较大,我们将点设置的较小
    并使用函数axis()指定了每个坐标轴的取值范围
    axis()函数要求提供四个值:x和y坐标轴的最小值和最大值
    如图:


    7.删除数据点的轮廓

    matplotlib允许给散点图中的每一个点指定颜色
    要删除数据点的轮廓可在调用scatter()时传递实参edgecolors='none'

    plt.scatter(x_values,y_values,edgecolors='none',s=10)
    

    修改后如图:


    8.自定义颜色

    要修改数据点的颜色,可向scatter()传递参数c
    并将其设置为要使用的颜色的名称,如下所示:

    plt.scatter(x_values,y_values,c='red',edgecolors='none',s=10)
    

    还可以使用RGB颜色模式自定义颜色,要指定自定义颜色,可传递参数c
    并将其设置为一个元组,其中包含三个0~1之间的小数值
    它们分别表示红色,绿色和蓝色分量,例如
    下面的代码行创建一个由淡蓝色点组成的散点图:

    plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolors='none',s=10)
    

    值越接近0,指定颜色越深,值越接近1,指定颜色越浅

    9.使用颜色映射

    颜色映射是一系列颜色,它们从起始颜色渐变到结束颜色
    在可视化中,颜色映射用于突出数据规律
    例如,你可能用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值

    模块pyplot内置了一组颜色映射,要使用这些颜色映射
    你需要告诉pyplot该如何设置数据集中的每个点的颜色
    下面演示了如何根据每个点的y值来设置其颜色:

    import matplotlib.pyplot as plt
    
    plt.rcParams['font.family'] = ['STFangsong']
    
    x_values = list(range(1,1001))
    y_values = [x**2 for x in x_values]
    
    plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=10)
    
    #设置图表标题,并给坐标轴加上标签
    plt.title('示例折线图',fontsize=24)
    plt.xlabel('value',fontsize=14)
    plt.ylabel('square of value',fontsize=14)
    
    #设置每个坐标轴的取值范围
    
    plt.axis([0,1100,0,1100000])
    plt.show()
    

    我们将参数c设置成了一个y值列表
    并使用参数cmap告诉pyplot使用哪个颜色映射
    这些代码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色
    如图:


    10.自动保存图表

    要让程序将图表保存到文件中,可将对plt.show()的调用替换为
    对plt.savefig()的调用:

    plt.savefig('1.png',bbox_inches='tight')
    

    第一个实参指定要以什么样的文件名保存图表
    将这个文件存放到当前.py文件所在目录中
    第二个实参指定将图表多余的空白区域裁剪掉
    如果要保留图表周围多余的空白区域,可以省略这个实参


    注意一点,plt.show()一定要放在plt.savefig()后面
    否则存储下来的是空白图

    相关文章

      网友评论

      本文标题:数据可视化<第二天>

      本文链接:https://www.haomeiwen.com/subject/euiahftx.html