Matplotlib中几种常用的图形(四)

条形图

条形图常常用来描述一组数据的对比情况,例如:一周七天,每天的城市车流量等。【条形图有两个参数x,y】bar()绘制竖直条形图、barh()绘制水平条形图。
导入绘图工具包:

import matplotlib.pyplot as plt
import numpy as np

绘制竖直条形图

x = np.linspace(0, 5, 5)
y = np.random.randint(0, 20, size=5)
# 表示先生成15(5*3)个随机数,然后将它们组装成5行,那么每行三个数,对应了颜色的sane组成部分
color = np.random.rand(15).reshape(5, 3)
plt.bar(x, y, alpha=0.8, color=color)
plt.show()

绘制出来的图形如下:
这里写图片描述
水平条形图的绘制:

plt.barh(x, y)
plt.show()

这里写图片描述

直方图

直方图描述了数据中某个范围内数据出现的频度。【直方图的参数只有一个x,不像条形图需要传入x,y】。
hist()函数:
—bins:可以使一个bin数量的整数值,也可以使表示bin的一个序列,默认值为10.
—normed:如果值是True,直方图的值将进行归一化处理,形成概率密度,默认值时False。
—color:指定直方图的颜色,可以使单一颜色值或颜色的序列。如果指定了多个数据集合,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色。
—orientation:通过设置orientation为horizontal创建水平直方图,默认值为vertical。

x = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]]
bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000]
labels = ["3k", "4k", "5k"]
plt.hist(x, bins=bins, label=labels)
plt.legend()
plt.show()

这里写图片描述

饼 图

饼状图通常用来表达集合中各个部分的百分比,【饼图也只有一个参数x!】pie()饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
普通各部分占满饼图、普通未占满饼图,饼图阴影、分裂等属性设置:
—#label参数设置每一块的标签;labeldistance参数设置标签距离圆心的距离(比例值)。
—#autopct参数设置比例值的显示格式(%1.1f%%); pctdistance参数设置比例值文字距离圆心的距离。
—#explode参数设置每一块顶点距圆形的长度(比例值);color参数设置每一块的颜色。
—#shadow参数为布尔值,设置是否绘制阴影。
—#startangle设置旋转角度”’。

普通各部分占满饼图

plt.figure(figsize=(6, 9))    # 调节图形大小,宽,高
p = np.array([0.7, 0.2, 0.1])
colors = ['red', 'yellow', 'green']
labels = ["dog", "cat", "other"]
plt.pie(p, labels=labels, autopct="%1.2f%%", colors=colors)
plt.axis("equal")               # plt.figure(figsize=(4, 4))
plt.legend()                   # 指明要绘制的图例
plt.title("Pie chart")
plt.savefig("PieChart.jpg")
plt.show()

这里写图片描述

普通未占满饼图

plt.figure(figsize=(6, 9))
p = np.array([0.6, 0.2, 0.1])
colors = ['red', 'yellow', 'green']
labels = ["dog", "cat", "other"]
plt.pie(p, labels=labels, autopct="%1.2f%%", colors=colors)
plt.axis("equal")
plt.title("Pie chart")
plt.savefig("Pie.jpg")
plt.show()

这里写图片描述

饼图分裂及阴影

plt.figure(figsize=(6, 6))
p = np.array([0.4, 0.2, 0.15, 0.15, 0.1])
colors = ['red', 'yellow', 'green', 'blue', 'purple']
labels = ["dog", "cat", "bird", "cow", "sheep"]
plt.pie(p, labels=labels, autopct="%1.2f%%", colors=colors, labeldistance=1.2,
        pctdistance=0.5, explode=[0.1, 0.1, 0.1, 0.2, 0.1], shadow=True,
        startangle=90)
plt.axis("equal")
plt.title("Animal Pie Chart")
plt.show()

这里写图片描述

散点图

【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】

x = np.random.randn(1000)
y = np.random.randn(1000)
color = np.random.random(3000).reshape(1000, 3)   # 设置颜色
size = np.random.randint(0, 100, 1000)  # 设置大小
plt.scatter(x, y, color=color, s=size, alpha=0.5)   # alpha设置透明度
plt.show()

这里写图片描述

猜你喜欢

转载自blog.csdn.net/xiao_pingping/article/details/82116673