Python matplotlib 数据分布

python

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

以上是 Python matplotlib 数据分布 的全部内容, 来源链接: utcz.com/z/389016.html

回到顶部