美文网首页
Python可视化应用――如何在一张图上同时绘制折线图和叠加的条

Python可视化应用――如何在一张图上同时绘制折线图和叠加的条

作者: 方程不等式 | 来源:发表于2018-09-06 21:00 被阅读0次

    hhhhh我又来更文了,本来打算今天要学自己的东西的,没想到部门大哥在就回家前又给我提了个需求,我直言,你到底是程序员还是产品经理呀???我的,这个坏小子。而且提的需求都是那种很精辟的真是想的够美的哦。

    好啦,进入正题。

    今天给大家介绍的是同时在一张图上绘制折线图和叠加的条形图,大致样子长下图这样,不过今天教的是只有一条折线图的用法,我不会告诉你,这张图就是部门大哥手绘的,吼吼吼。

    就直接进入代码吧。

    import matplotlib

    matplotlib.use('Agg')

    import numpy as np

    import pandas as pd

    #关于import这些玩意,请使用 sudo apt install python-XXX

    import matplotlib.pyplot as plt

    from matplotlib import mlab

    from matplotlib import rcParams

    data=[25.9,84.6,21,21.8,36.7,4,5.2,43.7,0.12292,94]  #折线图的y轴数据

    rn=['a','b','c','d','e','f','h','i','j','k']  #横坐标的内容

    vbar1=[5,4,7,9,12,3,7,4,10,9]  #下面的条形图的y轴数据

    vbar2=[4,6,9,2,7,8,10,8,12,6]  #上面的条形图的y轴数据

    fig, ax1 = plt.subplots(figsize=(15,10))

    x=np.arange(len(rn))

    y=np.array(list(vbar1))

    w=np.array(list(vbar2))

    xticks1=list(rn)

    #条形图

    #plt.bar(x[0:6],y[0:6],width = 0.45,align='center',color = 'gray',alpha=0.9)

    #plt.bar(x[6:],y[6:],width = 0.45,align='center',color = 'c',alpha=0.9)

    #上面这两条语句,是用来设置条形图的颜色的,前6条柱子是gray色,而后四条是蓝绿色

    plt.bar(x,y,width = 0.45,label='female',align='center',color = 'c',alpha=0.9)

    plt.bar(x,w,bottom=vbar1,label='male',tick_label=vbar1,width = 0.45,align='center',color = 'y',alpha=0.9)

    #看我斜体数据,就是关键了

    plt.xticks(x,xticks1,size='medium')

    打印下方条形图的数据

    for a,b in zip(x,y):

        plt.text(a, b, '%s' % b, ha='center', va= 'bottom',fontsize=10)

    #折线图

    ax2 = ax1.twinx()

    z=np.array(list(data))

    ax2.plot(x,z,c='y',marker='o')

    #打印折线图的数据

    for a,b in zip(x,z):

        plt.text(a, b, '%s' % b, ha='center', va= 'bottom',fontsize=10)

    #保存成图片

    plt.savefig("result.png",format='png')

    最后的效果图如图所示

    emmmmm我觉得挺好看的。

    ok今天就到这里吧,还要再写一篇呢。

    相关文章

      网友评论

          本文标题:Python可视化应用――如何在一张图上同时绘制折线图和叠加的条

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