• 柱状图


    1 plt.bar

    bar()函数中可直接设置标签,label = '' 。

    当两个堆叠时,加上参数bottom可以设置那个在下面,这时便不会发生一个覆盖另一个的情况。

     特别注意这里的bottom参数设置时应该是第一次画的bar中的数据,不能用第二次,否则会出错。

    # !/usr/bin/env.python
    # *._ * _.coding: utf - 8.
    import os, sys, pickle
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    import matplotlib.dates as mdates
    from pylab import *
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    
    name_list = ['Monday', 'Tuesday', 'Friday', 'Sunday']
    num_list = [9, 0.6, 2, 6]
    num_list1 = [1, 2, 3, 1]
    plt.bar(range(len(num_list)), num_list, label='boy', fc='y')
    plt.bar(range(len(num_list)), num_list1, bottom=num_list, label='girl', tick_label=name_list, fc='r')
    plt.legend()
    plt.show()

    参考:https://blog.csdn.net/qq_29721419/article/details/71638912

    在同一个柱状图同一横坐标下画两次时,柱子会自动叠加,注意这里的叠加是重叠,不是加和,所以想比较两个数据时,除非一组比另一组都大,否则还是要用两个柱子并列的方法比较。https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.6.292844f2UPu2Bd&postId=4796

    有类似的例子

    #!/usr/bin/env.python
    #*._ * _.coding: utf - 8.
    import os, sys, pickle
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    import seaborn as sns
    
    plt.figure(figsize=(9, 6))   # 设置画布的大小
    n = 8                        # 条形簇的个数
    X = np.arange(n) + 1         # 生成1到8的ndarry  注意这里list类型不能直接进行算术运算,所以要用numpy类型。
    # X是1,2,3,4,5,6,7,8,柱的个数
    # numpy.random.uniform(low=0.0, high=1.0, size=None), normal
    # uniform均匀分布的随机数,normal是正态分布的随机数,0.5-1均匀分布的数,一共有n个
    Y1 = np.random.uniform(0.5, 1.0, n)
    Y2 = np.random.uniform(0.5, 1.0, n)
    # bar中第一个参数是柱的中心点的横坐标,第二个是柱的高度。 plt.bar(X, Y1, width=0.35, facecolor='lightskyblue', edgecolor='black') plt.bar(X + 0.35, Y2, width=0.35, facecolor='yellowgreen', edgecolor='white') # 柱的宽度 水平柱状图plt.barh,属性中宽度width变成了高度height # 打两组数据时用+,即画Y2的时候 # facecolor柱状图里填充的颜色 # edgecolor是边框的颜色 # 想把一组数据打到下边,在数据前使用负号 实践了无效果 # plt.bar(X, -Y2, width=0.35, facecolor='#ff9999', edgecolor='white') # 给图加text for x, y in zip(X, Y1): plt.text(x, y +0.02, '%.2f' % y, ha='center') # text()用于设置显示的文本内容及位置,括号中的前两个参数是所要填写的文本的位置, # %.0f' % y, 其中b是标注的文字,也即要显示的文本内容,即每个柱子对应的y值, # 其中0表示不显示小数后面的数值,1就表示显示小数后面一位,这里设置了保留两位小数。 # ha='center',va= 'bottom'代表horizontalalignment(水平对齐)verticalalignment(垂直对齐)的方式, for x, y in zip(X, Y2): plt.text(x + 0.35, y + 0.02, '%.2f' % y, ha='center', va='bottom') plt.ylim(0, +1.25) # 设置y轴的范围 plt.show()

    输出:

    参考:https://www.jianshu.com/p/8c0fe1240e78

  • 相关阅读:
    23个精美的的国外网站设计作品推荐欣赏
    javascript / js数据类型,数据类型转换
    让人兴奋的视差滚动(Parallax Scrolling)效果网站分享
    手机网页应用的交互设计
    qq空间等闪动的文字怎么做?
    用CSS实现首字下沉效果,仿word的首字下沉
    35 套精美的 PSD 图标素材,网页素材下载
    使用纯CSS实现圆角边框并完美兼容
    推荐给 JavaScript 开发者十款超级有用的工具来提高客户体验
    40款非常漂亮的 HTML5 & CSS3 网站模板免费下载欣赏
  • 原文地址:https://www.cnblogs.com/xxswkl/p/10864289.html
Copyright © 2020-2023  润新知