美文网首页
python 数据分析-matplotlib 绘图

python 数据分析-matplotlib 绘图

作者: 两分与桥 | 来源:发表于2019-05-26 10:27 被阅读0次

    1.绘制折线图

    from matplotlib import pyplot
    import matplotlib
    
    # 默认无法显示中文,通过设置本地字体解决
    font = {'family' : 'MicroSoft YaHei', 'weight' : 'bold'}
    
    matplotlib.rc('font', **font)
    
    x = range(2, 26, 2)
    
    # 两条数据
    y_1 = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]
    y_2 = [10, 14, 18, 20, 23, 20, 22, 23, 20, 17, 19, 14]
    
    pyplot.figure(figsize=(10, 6), dpi=80)
    
    # 绘制图像
    pyplot.plot(x, y_1)
    pyplot.plot(x, y_2)
    
    pyplot.legend(["温度一", "温度二"])
    
    # 生成网格
    pyplot.grid()
    
    # 设置x的刻度
    x_ticks = []
    for i in range(2, 25):
        x_ticks.append(i)
    
    x_ticks_labels = []
    for i in x_ticks:
        x_ticks_labels.append("时间.{1}".format(1, i))
    
    pyplot.xticks(x_ticks[::2], x_ticks_labels[::2], rotation=22)
    
    # 设置y的刻度
    pyplot.yticks(range(0, 30, 5))
    
    pyplot.xlabel("时间/点")
    pyplot.ylabel("温度/摄氏度")
    pyplot.title("温度变化折线图")
    
    # 保存为文件
    pyplot.savefig("./t1.svg")
    
    pyplot.show()
    

    效果图


    折线图

    2.散点图

    from matplotlib import pyplot
    import matplotlib
    
    # 默认无法显示中文,通过设置本地字体解决
    font = {'family' : 'MicroSoft YaHei', 'weight' : 'bold'}
    
    matplotlib.rc('font', **font)
    
    
    x_1 = range(2, 26, 2)
    x_2 = range(40, 64, 2)
    
    y_1 = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]
    y_2 = [10, 14, 18, 20, 23, 20, 22, 23, 20, 17, 19, 14]
    
    
    pyplot.figure(figsize=(10, 6), dpi=80)
    
    # 绘制图像
    pyplot.scatter(x_1, y_1)
    pyplot.scatter(x_2, y_2)
    
    pyplot.legend(["温度一", "温度二"])
    
    # 生成网格
    pyplot.grid()
    
    # 设置x的刻度
    x_ticks = []
    for i in range(2, 64):
        x_ticks.append(i)
    
    x_ticks_labels = []
    for i in x_ticks:
        x_ticks_labels.append("时间.{1}".format(1, i))
    
    pyplot.xticks(x_ticks[::4], x_ticks_labels[::4], rotation=22)
    
    # 设置y的刻度
    pyplot.yticks(range(0, 30, 5))
    
    pyplot.xlabel("时间/点")
    pyplot.ylabel("温度/摄氏度")
    pyplot.title("温度变化散点图")
    
    # 保存为文件
    pyplot.savefig("./t1.svg")
    
    pyplot.show()
    

    效果图


    散点图

    4.条形图,竖直的

    from matplotlib import pyplot
    
    x = range(1, 13)
    y = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]
    
    pyplot.figure(figsize=(10, 6), dpi=80)
    
    # 绘制图像
    pyplot.bar(x, y, width=0.3, color="r")
    
    pyplot.legend(["Temperature line"])
    
    # 生成网格
    pyplot.grid()
    
    # 设置x的刻度
    pyplot.xticks(x, rotation=45)
    
    # 设置y的刻度
    pyplot.yticks(range(0, 30, 5))
    
    pyplot.show()
    

    效果图


    竖直的条形图

    3.条形图,水平的

    from matplotlib import pyplot
    
    a = range(1, 13)
    b = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]
    
    pyplot.figure(figsize=(10, 6), dpi=80)
    
    # 绘制图像
    pyplot.barh(a, b, height=0.5, color="yellow")
    
    pyplot.legend(["Temperature line"])
    
    # 生成网格
    pyplot.grid()
    
    # 设置y的刻度
    pyplot.yticks(a, rotation=45)
    
    # 设置x的刻度
    pyplot.xticks(range(0, 30, 5))
    
    pyplot.show()
    

    效果图


    水平的条形图

    5.多条形图

    from matplotlib import pyplot
    import matplotlib
    
    # 默认无法显示中文,通过设置本地字体解决
    font = {'family' : 'MicroSoft YaHei', 'weight' : 'bold'}
    
    matplotlib.rc('font', **font)
    
    a = ["猩球崛起3:终极之战", "敦刻尔克", "蜘蛛侠:英雄归来", "战狼2"]
    
    # 票房数据
    b_1 = [15746, 312, 4497, 319]
    b_2 = [12357, 156, 2045, 168]
    b_3 = [2358, 399, 2358, 362]
    
    pyplot.figure(figsize=(10, 6), dpi=80)
    
    x_1 = range(1, 5)
    x_2 = []
    for i in x_1:
        x_2.append(i+0.2)
    
    x_3 = []
    for i in x_2:
        x_3.append(i+0.2)
    
    # 绘制图像
    pyplot.bar(x_1, b_1, width=0.2, color="blue", label="1号")
    pyplot.bar(x_2, b_2, width=0.2, color="orange", label="2号")
    pyplot.bar(x_3, b_3, width=0.2, color="red", label="3号")
    
    pyplot.legend()
    # 生成网格
    pyplot.grid()
    
    # 设置x的刻度
    pyplot.xticks(x_2, a)
    
    # 设置y的刻度
    pyplot.yticks(range(0, 18000, 1000))
    
    pyplot.xlabel("电影名称")
    pyplot.ylabel("当天票房")
    pyplot.title("电影/票房条形图")
    
    pyplot.show()
    

    效果图


    多条形图

    相关文章

      网友评论

          本文标题:python 数据分析-matplotlib 绘图

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