Python机器学习(六十九)Matplotlib 其他类型图形 Matplotlib 柱状图 Matplotlib 饼图 Matplotlib 直方图 Matplotlib 散点图 Matplotlib 填充图 Matplotlib 网格 Matplotlib 极坐标图 Matplotlib 3D图

柱状图/条形图是常见的图形类型,可使用bar()方法绘制。

示例

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 柱状图条目
divisions = ["Div-A", "Div-B", "Div-C", "Div-D", "Div-E"]
# 柱状图条目的值
divisions_average_marks = [70, 82, 73, 65, 68]

# 绘制图形
plt.bar(divisions, divisions_average_marks, color="green")

# 设置标题
plt.title("Bar Graph")
# 设置x轴标签
plt.xlabel("Divisions")
# 设置y轴标签
plt.ylabel("Marks")

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

示例

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 柱状图条目
divisions = ["Div-A", "Div-B", "Div-C", "Div-D", "Div-E"]
# 柱状图条目的值
divisions_average_marks = [70, 82, 73, 65, 68]
boys_average_marks = [68, 67, 77, 61, 70]

index = np.arange(5)
width = 0.30

# 绘制图形
plt.bar(index, divisions_average_marks, width, color="green", label="Division Marks")
plt.bar(index + width, boys_average_marks, width, color="red", label="Boys Marks")

# 设置标题
plt.title("Bar Graph")
# 设置x轴标签
plt.xlabel("Divisions")
# 设置y轴标签
plt.ylabel("Marks")
# 设置 x 轴刻度
plt.xticks(index + width/2, divisions)

# 设置图例
plt.legend(loc='best')

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

示例

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 柱状图条目
divisions = ["Div-A", "Div-B", "Div-C", "Div-D", "Div-E"]
# 柱状图条目的值
boys_average_marks = [68, 67, 77, 61, 70]
girls_average_marks = [72, 97,69, 69, 66]

index = np.arange(5)
width = 0.30

# 绘制图形
plt.bar(index, boys_average_marks, width, color="red", label="Boys Marks")
plt.bar(index, girls_average_marks, width, color="blue", label="Girls Marks", bottom=boys_average_marks)

# 设置标题
plt.title("Bar Graph")
# 设置x轴标签
plt.xlabel("Divisions")
# 设置y轴标签
plt.ylabel("Marks")
# 设置 x 轴刻度
plt.xticks(index, divisions)

# 设置图例
plt.legend(loc='best')

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 饼图

饼图是另一种常见的图形类型,可以使用pie()方法制作饼图。

示例

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 准备数据:公司市场占有率
firms = ["Firm A", "Firm B", "Firm C", "Firm D", "Firm E"]
market_share = [20, 25, 15, 10, 20]

# 设置第二项为爆炸(散开)状态
Explode = [0, 0.1, 0, 0, 0]

# 绘制图形
plt.pie(market_share, explode=Explode, labels=firms, shadow=True, startangle=45)
plt.axis('equal')
plt.legend(title="List of Firms")

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 直方图

直方图是一种非常常见的图表类型,尤其在概率统计很常用,是正态分布、t分布等各种分布的基础。直方图使用hist()方法绘制。

示例

生成一个随机的连续数据,包含1000个条目,将这些数据划分为10个等分,根据其频率绘制图表。

直方图是一种非常常见的图表类型,尤其在概率统计很常用,是正态分布、t分# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 准备数据
x = np.random.randn(1000)

# 绘制图形
plt.title("Histogram")
plt.xlabel("Random Data")
plt.ylabel("Frequency")
plt.hist(x, 10)

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 散点图

一个简单的例子展示了如何用matplotlib绘制散点图。

示例

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 准备数据
n = 1024
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)
T = np.arctan2(Y, X)

# 绘制图形
plt.axes([0.025, 0.025, 0.95, 0.95])
plt.scatter(X, Y, s=75, c=T, alpha=.5)

plt.xlim(-1.5, 1.5)
plt.xticks(())
plt.ylim(-1.5, 1.5)
plt.yticks(())

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 填充图

一个简单的例子展示了如何用matplotlib绘制填充图。

示例

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 准备数据
n = 256
X = np.linspace(-np.pi, np.pi, n, endpoint=True)
Y = np.sin(2 * X)

# 绘制图形
plt.axes([0.025, 0.025, 0.95, 0.95])

plt.plot(X, Y + 1, color='blue', alpha=1.00)
plt.fill_between(X, 1, Y + 1, color='blue', alpha=.25)

plt.plot(X, Y - 1, color='blue', alpha=1.00)
plt.fill_between(X, -1, Y - 1, (Y - 1) > -1, color='blue', alpha=.25)
plt.fill_between(X, -1, Y - 1, (Y - 1) < -1, color='red',  alpha=.25)

plt.xlim(-np.pi, np.pi)
plt.xticks(())
plt.ylim(-2.5, 2.5)
plt.yticks(())

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 网格

一个简单的例子展示了如何用matplotlib绘制网格。

示例

import matplotlib.pyplot as plt

ax = plt.axes([0.025, 0.025, 0.95, 0.95])

ax.set_xlim(0,4)
ax.set_ylim(0,3)
ax.xaxis.set_major_locator(plt.MultipleLocator(1.0))
ax.xaxis.set_minor_locator(plt.MultipleLocator(0.1))
ax.yaxis.set_major_locator(plt.MultipleLocator(1.0))
ax.yaxis.set_minor_locator(plt.MultipleLocator(0.1))
ax.grid(which='major', axis='x', linewidth=0.75, linestyle='-', color='0.75')
ax.grid(which='minor', axis='x', linewidth=0.25, linestyle='-', color='0.75')
ax.grid(which='major', axis='y', linewidth=0.75, linestyle='-', color='0.75')
ax.grid(which='minor', axis='y', linewidth=0.25, linestyle='-', color='0.75')
ax.set_xticklabels([])
ax.set_yticklabels([])

# 显示
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 极坐标图

一个简单的例子展示了如何用matplotlib绘制极坐标图。

示例

import numpy as np
import matplotlib.pyplot as plt

ax = plt.axes([0.025, 0.025, 0.95, 0.95], polar=True)

N = 20
theta = np.arange(0.0, 2 * np.pi, 2 * np.pi / N)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
bars = plt.bar(theta, radii, width=width, bottom=0.0)

for r,bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.jet(r/10.))
    bar.set_alpha(0.5)

ax.set_xticklabels([])
ax.set_yticklabels([])
plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图

Matplotlib 3D图

一个简单的例子展示了如何用matplotlib绘制3D图。

示例

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.sin(R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.hot)
ax.set_zlim(-2, 2)

plt.show()

输出

Python机器学习(六十九)Matplotlib 其他类型图形
Matplotlib 柱状图
Matplotlib 饼图
Matplotlib 直方图
Matplotlib 散点图
Matplotlib 填充图
Matplotlib 网格
Matplotlib 极坐标图
Matplotlib 3D图