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的颜色及线条控制

posted @ 2017-09-12 18:12  焦距  阅读(2791)  评论(0编辑  收藏  举报