UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
matplotlib.use('TkAgg')
#No module named '_tkinter'
1. 折线图(Line plot)
用于展示数据随时间或有序类别变化的趋势。
2. 散点图(Scatter plot)
用于展示两个变量之间的关系,观察数据点的分布。
3. 条形图(Bar chart)
用于比较不同类别之间的数值大小。可以是垂直的(plt.bar)或水平的(plt.barh)。
4. 直方图(Histogram)
用于展示数据的分布情况,通过数据分组(bins)来观察频率分布。
5. 饼图(Pie chart)
用于展示各部分占整体的比例关系。
6. 箱型图(Box plot)
用于展示数据的分布情况,包括中位数、四分位数和异常值。
7. 等高线图(Contour plot)
用于展示三维数据的二维等值投影,常用于地理数据的可视化。
8. 3D 图形 - 包括3D 线图、3D 散点图、3D 条形图等,用于展示三维空间中的数据关系。
9. 热图(Heatmap)
用于展示矩阵数据,颜色深浅表示数据大小,常用于展示相关性矩阵。
10. 极坐标图(Polar plot)
用极坐标系统展示数据,适用于周期性数据的展示。
11. 误差条形图(Error bar plot)
用于展示数据的变异情况,通过误差线表示数据的不确定性。
12. 堆叠条形图(Stacked bar chart)
类似于条形图,但是将多个类别的数据堆叠在一起,用于展示总量及各部分的比例。
13. 面积图(Area plot)
类似于线图,但是线下区域被填充颜色,用于展示随时间变化的数量累积效果。
14. 阶梯图(Step plot)
类似于线图,但是数据点之间用水平和垂直线段连接,常用于展示离散变化。
15. 棉棒图(Stem plot)
用于展示每个数据点的大小,类似于散点图,但每个点有一个从基线延伸的线段。
16. 雷达图(Radar chart)
用于展示多变量数据,每个变量的值沿着轴线展示,常用于性能分析。
import matplotlib.pyplot as plt
x = range(1, 6)
y = [1, 4, 6, 8, 4]
plt.plot(x, y)
plt.title('Line Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()
import matplotlib.pyplot as plt
x = [5, 7, 8, 5, 6, 7, 9, 2, 3, 4, 4, 4, 2, 6, 3, 6, 8, 6]
y = [7, 4, 3, 9, 1, 3, 2, 5, 2, 4, 8, 7, 1, 6, 4, 9, 7, 8]
plt.scatter(x, y)
plt.title('Scatter Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [23, 45, 56, 78]
plt.bar(categories, values)
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
import matplotlib.pyplot as plt
sizes = [215, 130, 245, 210]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title('Pie Chart')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
data = np.random.rand(10, 4)
plt.boxplot(data)
plt.title('Box Plot')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3.0, 3.0, 100)
y = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X**2 + Y**2)
plt.contour(X, Y, Z)
plt.title('Contour Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
ax.scatter(x, y, z)
ax.set_title('3D Scatter Plot')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set() # 使用seaborn样式
# 生成数据
data = np.random.rand(10, 12)
# 绘制热图
plt.figure(figsize=(8, 6))
sns.heatmap(data, annot=True, fmt=".1f", linewidths=.5)
plt.title('Heatmap')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
plt.subplot(111, polar=True)
plt.plot(theta, r)
plt.title('Polar Plot')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0.1, 4, 0.5)
y = np.exp(-x)
# 定义误差
error = 0.1 + 0.2 * np.sqrt(x)
plt.errorbar(x, y, yerr=error, fmt='-o')
plt.title('Error Bar Plot')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N)
width = 0.35
plt.bar(ind, menMeans, width, label='Men')
plt.bar(ind, womenMeans, width, bottom=menMeans, label='Women')
plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
plt.yticks(np.arange(0, 81, 10))
plt.legend()
plt.show()
import matplotlib.pyplot as plt
x = range(1, 6)
y = [1, 4, 6, 8, 4]
plt.fill_between(x, y)
plt.title('Area Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()
import matplotlib.pyplot as plt
x = range(1, 6)
y = [1, 4, 6, 8, 4]
plt.step(x, y)
plt.title('Step Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1, 2 * np.pi, 10)
y = np.cos(x)
plt.stem(x, y)
plt.title('Stem Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
from math import pi
# 设置数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [4, 3, 2, 5, 4]
values += values[:1] # 闭合图形
# 计算角度
angles = [n / float(len(categories)) * 2 * pi for n in range(len(categories))]
angles += angles[:1]
# 绘图
ax = plt.subplot(111, polar=True)
plt.xticks(angles[:-1], categories)
ax.plot(angles, values)
ax.fill(angles, values, 'teal', alpha=0.1)
plt.show()