可视化学习笔记

作者: Elena_fan | 来源:发表于2020-08-30 10:24 被阅读0次

    Matplotlib绘图模块学习笔记
    老师指路->https://www.jianshu.com/u/1f32f227da5f
    使用工具:Anaconda-jupyter

    一、Matplotlib绘图模块学习笔记

    1、折线图

    import numpy as np 
    import matplotlib.pyplot as plt
    %matplotlib inline  #魔法函数-展示图像
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
    
    
    X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
    Y = np.sin(X)
    Y1 = np.cos(X)
    
    plt.title("Hello World!!")
    plt.plot(X,Y)
    plt.plot(X,Y1)
    #plt.show()
    
    matplot1.png

    绘制子图

    X = np.linspace(0, 2*np.pi,100)
    Y = np.sin(X)
    Y1 = np.cos(X)
    plt.subplot(211) # 等价于 subplot(2,1,1)
    plt.plot(X,Y)
    
    plt.subplot(212)
    plt.plot(X,Y1,color = 'r')
    
    matplot2.png

    2、柱状图
    柱状图一般用来统计一些类型的数量,例如不同产品的销售额。柱状图一般有两种,一个是传统的,一个是叠加的。

    data = [5,25,50,20]
    plt.bar(range(len(data)),data)
    #x=[0,1,2,3]
    #plt.bar(x,data)
    #四个产品销量情况
    
    matbar1.png

    多个柱状图

    data = [[5,25,50,20],
            [4,23,51,17],
            [6,22,52,19]]
    X = np.arange(4)
    
    plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")
    plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")
    plt.bar(X + 0.50, data[2], color = 'y', width = 0.25,label = "C")
    
    # 显示上面设置的 lable
    plt.legend()
    #四个季度、三个产品销量
    
    matbars.png

    叠加柱状图

    data = [[5,25,50,20],
            [4,23,51,17],
            [6,22,52,19]]
    X = np.arange(4)
    
    plt.bar(X, data[0], color = 'b', width = 0.25)
    plt.bar(X, data[1], color = 'g', width = 0.25,bottom = data[0])
    plt.bar(X, data[2], color = 'y', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))
    
    plt.show()
    
    matbarb.png

    3、散点图
    散点图用来衡量两个连续变量之间的相关性

    N = 50
    x = np.random.rand(N)
    y = np.random.rand(N)
    
    plt.scatter(x, y)
    
    mats1.png

    颜色大小区分

    N = 50
    x = np.random.rand(N)
    y = np.random.rand(N)
    colors = np.random.randn(N) # 颜色可以用数值表示
    area = np.pi * (15 * np.random.rand(N))**2  #  调整大小
    
    plt.scatter(x, y, c=colors, alpha=0.5, s = area)
    
    mats2.png

    4、直方图
    直方图是用来衡量连续变量的概率分布的。在构建直方图之前,我们需要先定义好bin(值的范围),先把连续值划分成不同等份,然后计算每一份里面数据的数量。

    #举例,绘制一个班级身高分布,150-170有多少人,170-180多少人,绘制频率分布
    a = np.random.rand(100)
    plt.hist(a,bins= 20)
    plt.ylim(0,15)
    
    mathist.png

    5、盒图
    boxlot用于表达连续特征的百分位数分布。统计学上经常被用于检测单变量的异常值,或者用于检查离散特征和连续特征的关系


    boxplot1.png
    x = np.random.randint(20,100,size = (30,3))
    plt.boxplot(x)
    plt.ylim(0,120)
    # 在x轴的什么位置填一个 label,我们这里制定在 1,2,3 位置,写上 A,B,C
    plt.xticks([1,2,3],['A','B','C']) 
    
    plt.hlines(y = np.median(x,axis = 0)[0] ,xmin =0,xmax=3)
    
    boxplot2.png

    Pandas直接绘图

    df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
    # 绘制柱状图
    df.plot.bar()
    
    pdbar.png

    pyecharts绘图

    可鼠标点击互动
    pyecharts 绘图的五个步骤:

    1、创建图形对象
    2、添加绘图数据
    3、配置系列参数
    4、配置全局参数
    5、渲染图片

    from pyecharts.charts import Bar
    from pyecharts import options as opts
    
    # l.创建一个柱形图对象
    bar = Bar()
    
    # 2.开始添加各个轴的数据
    bar.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
    bar.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
    bar.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
    
    # 3.配置系列参数:对标签、线型等的一些设置
    
    # 4.配置全局参数:对x、y轴、提示框等参数配置
    bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
    
    # 5.渲染
    # 生成本地 HTML 文件,默认会在当前目录生成 render.html 文件,也可以传入路径参数,如 bar.render("mycharts.html")
    # bar.render()
    
    # notebook 渲染
    bar.render_notebook()
    
    pyecharts.png

    词云图

    from pyecharts import options as opts
    from pyecharts.charts import Page, WordCloud
    from pyecharts.globals import SymbolType
    
    
    words = [
        ("Sam S Club", 10000),
        ("Macys", 6181),
        ("Amy Schumer", 4386),
        ("Jurassic World", 4055),
        ("Charter Communications", 2467),
        ("Chick Fil A", 2244),
        ("Planet Fitness", 1868),
        ("Pitch Perfect", 1484),
        ("Express", 1112),
        ("Home", 865),
        ("Johnny Depp", 847),
        ("Lena Dunham", 582),
        ("Lewis Hamilton", 555),
        ("KXAN", 550),
        ("Mary Ellen Mark", 462),
        ("Farrah Abraham", 366),
        ("Rita Ora", 360),
        ("Serena Williams", 282),
        ("NCAA baseball tournament", 273),
        ("Point Break", 265),
    ]
    
    
    wordcloud = (
        WordCloud()
        .add("", words, word_size_range=[20, 100])
        .set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-基本示例"))
    )
    
    
    wordcloud.render_notebook()
    
    
    词云图

    相关文章

      网友评论

        本文标题:可视化学习笔记

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