• Python matplotlib 数据分布


    利用plt.hist()

    import matplotlib.pylab as plt
    %matplotlib inline
    plt.figure(figsize=(21, 12))
    plt.hist(x, bins=50)
    # plt.hist(df['title'].apply(lambda x: len(x)), bins=50)
    plt.grid()
    plt.savefig('distribution.png')

    模块化:

    def plot_data_distribution(value_list, figsize=(21, 12), bins=50, fout=None):
        plt.figure(figsize=figsize)
        plt.hist(value_list, bins=bins)
        plt.xticks(range(int(max(value_list) - min(value_list))))
        # plt.xticks([i * 0.01 for i in range(0, 110, 5)])
        # plt.xticks([0.1 * x for x in range(11)])
        # plt.xlim(0, 1)
        plt.grid()
        if fout:
            plt.savefig(fout)
        else:
            plt.show()

    把多个数据分布显示在一个直方图表中对比:

    def plot_multi_data_distribution(value_list1, value_list2, figsize=(21, 12), bins=50, fout=None):
        plt.figure(figsize=figsize)
        plt.hist([value_list1, value_list2], bins=bins, color=["r", "b"], label=["value_list1", "value_list2"])
        # plt.xticks(range(int(max(value_list) - min(value_list))))
        plt.grid()
        plt.legend(loc=1)
        plt.xlabel("probability")
        plt.ylabel("count")
        plt.title("data distribution")
        if fout:
            plt.savefig(fout)
        else:
            plt.show()



    def gen_colors(num):
        # colors = ["blue", "red", "green", "black", "brown", "orange", "gray", "purple", "salmon", "hotpink",
        #           "#222222", "#444444", "#666666", "#888888", "#AAAAAA", "#CCCCCC", "#EEEEEE",
        #           "#111111", "#333333", "#555555", "#777777", "#999999"]
        colors = ["black", "darkgrey", "red", "darkorange", "brown", "darkgoldenrod", "yellow", "lightgreen", "green", "lime",
                  "cyan", "deepskyblue", "dodgerblue", "cornflowerblue", "blue", "purple", "fuchsia", "lightpink"]
        return colors[:num]
    
    
    def plot_multi_data_distribution(value_lists, names, figsize=(21, 12), bins=50, fout=None):
        plt.figure(figsize=figsize)
        plt.hist(value_lists, bins=bins, color=gen_colors(num=len(value_lists)), label=names)
        # plt.xticks(range(int(max(value_list) - min(value_list))))
        plt.xticks([i * 0.01 for i in range(0, 110, 5)])
        plt.grid()
        plt.legend(loc=1)
        plt.xlabel("probability")
        plt.ylabel("count")
        plt.title("data distribution")
        if fout:
            plt.savefig(fout)
        else:
            plt.show()

    生成渐变色:

    def gen_colors(num, base_color="#1000FF", interval=1600000):
        base = int(base_color.replace("#", "0x"), 16)
        # return ["blue", "red", "green", "black", "brown", "orange", "gray", "purple", "hotpink", "salmon"][:num]
        # return ["#0000FF", "#00FF00", "#FF0000", "#00FFFF", "#FF00FF", "#FFFF00", "#000000",
        #         "#666666", "#660000", "#666600", "#660066"][:num]
        return ["#" + hex(base + (i * interval))[2:] for i in range(num)]

    例如下面这种(看到眼花哈哈哈): 

    还是选择几种比较特别的颜色会方便看一些.

    Matplotlib uses a dictionary from its colors.py module. To print the names use:

    # python2:
    
    import matplotlib
    for name, hex in matplotlib.colors.cnames.iteritems():
        print(name, hex)
    
    # python3:
    
    import matplotlib
    for name, hex in matplotlib.colors.cnames.items():
        print(name, hex)

    This is the complete dictionary:

    cnames = {
    'aliceblue':            '#F0F8FF',
    'antiquewhite':         '#FAEBD7',
    'aqua':                 '#00FFFF',
    'aquamarine':           '#7FFFD4',
    'azure':                '#F0FFFF',
    'beige':                '#F5F5DC',
    'bisque':               '#FFE4C4',
    'black':                '#000000',
    'blanchedalmond':       '#FFEBCD',
    'blue':                 '#0000FF',
    'blueviolet':           '#8A2BE2',
    'brown':                '#A52A2A',
    'burlywood':            '#DEB887',
    'cadetblue':            '#5F9EA0',
    'chartreuse':           '#7FFF00',
    'chocolate':            '#D2691E',
    'coral':                '#FF7F50',
    'cornflowerblue':       '#6495ED',
    'cornsilk':             '#FFF8DC',
    'crimson':              '#DC143C',
    'cyan':                 '#00FFFF',
    'darkblue':             '#00008B',
    'darkcyan':             '#008B8B',
    'darkgoldenrod':        '#B8860B',
    'darkgray':             '#A9A9A9',
    'darkgreen':            '#006400',
    'darkkhaki':            '#BDB76B',
    'darkmagenta':          '#8B008B',
    'darkolivegreen':       '#556B2F',
    'darkorange':           '#FF8C00',
    'darkorchid':           '#9932CC',
    'darkred':              '#8B0000',
    'darksalmon':           '#E9967A',
    'darkseagreen':         '#8FBC8F',
    'darkslateblue':        '#483D8B',
    'darkslategray':        '#2F4F4F',
    'darkturquoise':        '#00CED1',
    'darkviolet':           '#9400D3',
    'deeppink':             '#FF1493',
    'deepskyblue':          '#00BFFF',
    'dimgray':              '#696969',
    'dodgerblue':           '#1E90FF',
    'firebrick':            '#B22222',
    'floralwhite':          '#FFFAF0',
    'forestgreen':          '#228B22',
    'fuchsia':              '#FF00FF',
    'gainsboro':            '#DCDCDC',
    'ghostwhite':           '#F8F8FF',
    'gold':                 '#FFD700',
    'goldenrod':            '#DAA520',
    'gray':                 '#808080',
    'green':                '#008000',
    'greenyellow':          '#ADFF2F',
    'honeydew':             '#F0FFF0',
    'hotpink':              '#FF69B4',
    'indianred':            '#CD5C5C',
    'indigo':               '#4B0082',
    'ivory':                '#FFFFF0',
    'khaki':                '#F0E68C',
    'lavender':             '#E6E6FA',
    'lavenderblush':        '#FFF0F5',
    'lawngreen':            '#7CFC00',
    'lemonchiffon':         '#FFFACD',
    'lightblue':            '#ADD8E6',
    'lightcoral':           '#F08080',
    'lightcyan':            '#E0FFFF',
    'lightgoldenrodyellow': '#FAFAD2',
    'lightgreen':           '#90EE90',
    'lightgray':            '#D3D3D3',
    'lightpink':            '#FFB6C1',
    'lightsalmon':          '#FFA07A',
    'lightseagreen':        '#20B2AA',
    'lightskyblue':         '#87CEFA',
    'lightslategray':       '#778899',
    'lightsteelblue':       '#B0C4DE',
    'lightyellow':          '#FFFFE0',
    'lime':                 '#00FF00',
    'limegreen':            '#32CD32',
    'linen':                '#FAF0E6',
    'magenta':              '#FF00FF',
    'maroon':               '#800000',
    'mediumaquamarine':     '#66CDAA',
    'mediumblue':           '#0000CD',
    'mediumorchid':         '#BA55D3',
    'mediumpurple':         '#9370DB',
    'mediumseagreen':       '#3CB371',
    'mediumslateblue':      '#7B68EE',
    'mediumspringgreen':    '#00FA9A',
    'mediumturquoise':      '#48D1CC',
    'mediumvioletred':      '#C71585',
    'midnightblue':         '#191970',
    'mintcream':            '#F5FFFA',
    'mistyrose':            '#FFE4E1',
    'moccasin':             '#FFE4B5',
    'navajowhite':          '#FFDEAD',
    'navy':                 '#000080',
    'oldlace':              '#FDF5E6',
    'olive':                '#808000',
    'olivedrab':            '#6B8E23',
    'orange':               '#FFA500',
    'orangered':            '#FF4500',
    'orchid':               '#DA70D6',
    'palegoldenrod':        '#EEE8AA',
    'palegreen':            '#98FB98',
    'paleturquoise':        '#AFEEEE',
    'palevioletred':        '#DB7093',
    'papayawhip':           '#FFEFD5',
    'peachpuff':            '#FFDAB9',
    'peru':                 '#CD853F',
    'pink':                 '#FFC0CB',
    'plum':                 '#DDA0DD',
    'powderblue':           '#B0E0E6',
    'purple':               '#800080',
    'red':                  '#FF0000',
    'rosybrown':            '#BC8F8F',
    'royalblue':            '#4169E1',
    'saddlebrown':          '#8B4513',
    'salmon':               '#FA8072',
    'sandybrown':           '#FAA460',
    'seagreen':             '#2E8B57',
    'seashell':             '#FFF5EE',
    'sienna':               '#A0522D',
    'silver':               '#C0C0C0',
    'skyblue':              '#87CEEB',
    'slateblue':            '#6A5ACD',
    'slategray':            '#708090',
    'snow':                 '#FFFAFA',
    'springgreen':          '#00FF7F',
    'steelblue':            '#4682B4',
    'tan':                  '#D2B48C',
    'teal':                 '#008080',
    'thistle':              '#D8BFD8',
    'tomato':               '#FF6347',
    'turquoise':            '#40E0D0',
    'violet':               '#EE82EE',
    'wheat':                '#F5DEB3',
    'white':                '#FFFFFF',
    'whitesmoke':           '#F5F5F5',
    'yellow':               '#FFFF00',
    'yellowgreen':          '#9ACD32'}

    上面对应的颜色:

    另外的显示方式:

    装了seaborn扩展的话,在字典seaborn.xkcd_rgb中包含所有的xkcd crowdsourced color names。如下:

    plt.plot([1,2], lw=4, c=seaborn.xkcd_rgb['baby poop green'])

    所有颜色如下:

    更多详细参考:

    https://www.cnblogs.com/jerrybaby/p/6118236.html

    http://baijiahao.baidu.com/s?id=1595822592180003842&wfr=spider&for=pc

    http://baijiahao.baidu.com/s?id=1576521879286470276&wfr=spider&for=pc

    https://blog.csdn.net/yywan1314520/article/details/50818471

    https://www.cnblogs.com/laoniubile/p/5893286.html

    python颜色设置

    python中matplotlib的颜色及线条控制

  • 相关阅读:
    判断字符串是否含有特殊字符和emoji表情
    支付宝PC端支付接口使用流程
    AccessControlAllowOrigin跨域
    antdvue upload组件使用alioss sts上传图片
    微前端的几种实现方案
    使用Powershell脚本实现微信多开
    DebianVIM取消自动缩进
    DebianVIM设置mouse=a不生效解决办法
    rest接口的函数需要是public
    No provider available from registry for service com.xxx.TestService:1.0.0 on consumer use dubbo version 2.6.2, please check status of providers(disabled, not registered or in blacklist)
  • 原文地址:https://www.cnblogs.com/bymo/p/7511542.html
Copyright © 2020-2023  润新知