在信息爆炸的时代,如何快速、准确地理解和分析数据成为了职场人士的一项重要技能。图表作为一种直观的数据呈现方式,可以帮助我们更好地理解复杂数据背后的规律和趋势。本文将介绍37种图表类型,帮助你轻松看懂复杂数据,提升职场竞争力。
1. 折线图
折线图主要用于展示数据随时间变化的趋势。它通过将数据点用线段连接起来,使人们能够清晰地观察到数据的变化过程。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('时间')
plt.ylabel('值')
plt.title('正弦函数')
plt.show()
2. 柱状图
柱状图用于比较不同类别或组的数据。它通过柱子的高度来表示数据的大小。
import matplotlib.pyplot as plt
# 示例数据
categories = ['类别A', '类别B', '类别C']
values = [10, 20, 30]
plt.bar(categories, values)
plt.xlabel('类别')
plt.ylabel('值')
plt.title('柱状图示例')
plt.show()
3. 饼图
饼图用于展示各部分占整体的比例。它通过扇形的面积来表示各部分的比例关系。
import matplotlib.pyplot as plt
# 示例数据
labels = ['部分A', '部分B', '部分C']
sizes = [25, 35, 40]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title('饼图示例')
plt.show()
4. 散点图
散点图用于展示两个变量之间的关系。它通过坐标轴上的点来表示两个变量的值。
import matplotlib.pyplot as plt
# 示例数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.scatter(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('散点图示例')
plt.show()
5. 散点图(气泡图)
气泡图是散点图的一种变体,它通过气泡的大小来表示第三个变量的值。
import matplotlib.pyplot as plt
# 示例数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
sizes = [10, 20, 30, 40, 50]
plt.scatter(x, y, s=sizes)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('气泡图示例')
plt.show()
6. 热力图
热力图用于展示数据矩阵的分布情况。它通过颜色深浅来表示数据的大小。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
data = np.random.rand(10, 10)
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.title('热力图示例')
plt.show()
7. 雷达图
雷达图用于展示多个变量之间的比较关系。它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图示例')
plt.show()
8. 堆积柱状图
堆积柱状图用于展示多个类别在一段时间内的变化趋势。它通过柱子的高度和宽度来表示数据的大小。
import matplotlib.pyplot as plt
# 示例数据
categories = ['类别A', '类别B', '类别C']
values = [[10, 20, 30], [15, 25, 35], [20, 30, 40]]
plt.bar(categories, values[0], label='A')
plt.bar(categories, values[1], bottom=values[0], label='B')
plt.bar(categories, values[2], bottom=[v[0] + v[1] for v in values[:2]], label='C')
plt.xlabel('类别')
plt.ylabel('值')
plt.title('堆积柱状图示例')
plt.legend()
plt.show()
9. 水平柱状图
水平柱状图与垂直柱状图类似,但数据以水平方式展示。
import matplotlib.pyplot as plt
# 示例数据
categories = ['类别A', '类别B', '类别C']
values = [10, 20, 30]
plt.barh(categories, values)
plt.xlabel('值')
plt.ylabel('类别')
plt.title('水平柱状图示例')
plt.show()
10. 漏斗图
漏斗图用于展示数据在各个阶段的转化率。它通过漏斗的宽度来表示各个阶段的转化率。
import matplotlib.pyplot as plt
# 示例数据
stages = ['阶段1', '阶段2', '阶段3', '阶段4']
values = [50, 40, 20, 10]
plt.bar(stages, values, width=0.5)
plt.xlabel('阶段')
plt.ylabel('转化率')
plt.title('漏斗图示例')
plt.show()
11. 堆积折线图
堆积折线图用于展示多个类别在一段时间内的变化趋势。它通过折线的颜色和形状来表示数据的大小。
import matplotlib.pyplot as plt
# 示例数据
categories = ['类别A', '类别B', '类别C']
values = [[10, 20, 30], [15, 25, 35], [20, 30, 40]]
plt.plot(categories, values[0], label='A')
plt.plot(categories, values[1], label='B', linestyle='--')
plt.plot(categories, values[2], label='C', linestyle='-.')
plt.fill_between(categories, values[0], values[0] + values[1], color='gray', alpha=0.3)
plt.fill_between(categories, values[0] + values[1], values[0] + values[1] + values[2], color='green', alpha=0.3)
plt.xlabel('类别')
plt.ylabel('值')
plt.title('堆积折线图示例')
plt.legend()
plt.show()
12. 箱线图
箱线图用于展示数据的分布情况。它通过箱体、中位数、四分位数和异常值来表示数据的分布特征。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
data = np.random.normal(0, 1, 100)
plt.boxplot(data)
plt.title('箱线图示例')
plt.show()
13. 直方图
直方图用于展示数据的频率分布。它通过柱子的高度来表示数据在各个区间的频率。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
data = np.random.normal(0, 1, 100)
plt.hist(data, bins=10)
plt.title('直方图示例')
plt.show()
14. 联合图
联合图用于展示两个变量之间的关系。它通过散点图和直方图来表示两个变量的分布情况。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
x = np.random.normal(0, 1, 100)
y = np.random.normal(0, 1, 100)
plt.hist2d(x, y, bins=10)
plt.colorbar()
plt.title('联合图示例')
plt.show()
15. 热图(散点图)
热图是散点图的一种变体,它通过颜色深浅来表示数据的大小。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
x = np.random.normal(0, 1, 100)
y = np.random.normal(0, 1, 100)
plt.scatter(x, y, c=x + y, cmap='viridis')
plt.colorbar()
plt.title('热图(散点图)示例')
plt.show()
16. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
17. 蜡烛图
蜡烛图用于展示股票价格的变化趋势。它通过蜡烛的颜色和形状来表示价格的涨跌和波动。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
dates = ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04']
highs = [100, 102, 101, 105]
lows = [98, 99, 100, 104]
opens = [99, 101, 100, 106]
closes = [101, 103, 102, 107]
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
ax.xaxis_date()
ax.xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter('%Y-%m-%d'))
for i in range(len(dates)):
ax.vlines(dates[i], highs[i], lows[i], color='black')
ax.vlines(dates[i], opens[i], closes[i], color='red' if closes[i] > opens[i] else 'green')
plt.show()
18. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
19. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
20. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
21. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
22. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
23. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
24. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
25. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
26. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
27. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
28. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
29. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
30. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
31. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
32. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和关系。
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)
values = np.random.rand(6)
plt.polar(angles, values)
plt.fill(angles, values, alpha=0.25)
plt.title('雷达图(极坐标图)示例')
plt.show()
33. 雷达图(极坐标图)
雷达图是极坐标图的一种变体,它通过角度和长度来表示变量的大小和
