数据可视化---共享子图2

文章介绍了如何使用Python的Matplotlib库绘制反映2018年和2019年快递业务量的折线图,以及包含正弦曲线、余弦曲线和气泡图的示例,展示了如何定制图表样式和布局。
摘要由CSDN通过智能技术生成

题目一:绘制反映2018年、2019年快递业务量趋势的折线图

编写程序。已知2018年、2019年物流行业的快递业务量情况如下表所示。

表  2018、2019年物流行业的快递业务量

月份

2018年业务量(亿件)

2019年业务量(亿件)

1月

39

45

2月

20

28

3月

40

48

4月

38

49

5月

42

50

6月

43

51

7月

41

50

8月

41

50

9月

45

51

10月

48

52

11月

52

70

12月

50

65

根据表的数据绘制图表,具体要求如下:

(1)绘制反映2018年、2019年快递业务量趋势的折线图;

(2)折线图的x轴为月份;y轴为业务量,y轴的标签为“业务量(亿件)”;

(3)代表2018年的折线样式:颜色为“#8B0000”、标记为正三角形、线型为长虚线,线宽为1.5;

(4)代表2019年的折线样式:颜色为“#006374”、标记为长菱形、线型为实线,线宽为1.5;

(5)折线图的主题风格切换为“fivethirtyeight”。

最终效果图:

运行代码:

#绘制反映2018年、2019年快递业务量趋势的折线图
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.style as ms

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
sale_a = [39, 20, 40, 38, 42, 43, 41, 41, 45, 48, 52, 50]
sale_b = [45, 28, 48, 49, 50, 51, 50, 50, 51, 52, 70, 65]

fig = plt.figure()
ax = fig.add_subplot(111)
#绘制具有不同线条样式的折线图
ax.plot(sale_a, '--', marker='^', color='#8B0000', linewidth=1.5)
ax.plot(sale_b, '-', marker='d', color='#006374', linewidth=1.5)
ax.set_ylabel('业务量(亿件)')
ax.set_xlabel('月份')
ax.set_xticks(np.arange(0, len(sale_a)))
stringA = [str(i) + '月' for i in range(1, 13)]
ax.set_xticklabels(stringA)
ms.use('fivethirtyeight')
plt.show()

运行结果

题目二:绘制一个包含正弦曲线和余弦曲线的图表

编写程序。绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:

(1)正弦曲线的样式:红色、线宽为1.0;

(2)余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5;

(3)x轴的刻度标签为“-π”、 “-π/2”、 “0”、 “π/2”、 “-π”;

(4)在x=1、y=np.cos(1)的位置添加指向型注释文本;

(5)填充|x|<0.5或余弦值大于0.5的区域为绿色,透明度为0.25。

最终的效果如图4-13所示。

正弦和余弦曲线

运行代码:

#绘制一个包含正弦曲线和余弦曲线的图标
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
plt.plot(x, y_cos, color='blue', linewidth=1.0, label='COS', alpha=0.5)
plt.plot(x, y_sin, color='red', linewidth=1.0, label='SIN')
plt.title('Cos & Sin')
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])#在字符串前加r,意味着该字符串将被视为原始字符串,所有转义字符都被忽略
plt.yticks(np.linspace(-1, 1, 5, endpoint=True))
plt.legend(loc='upper left')
plt.grid()
plt.fill_between(x, np.abs(x) < 0.5, y_cos, y_cos > 0.5, color='green', alpha=0.25)
plt.annotate('cos(1)', xy=(1, np.cos(1)), xycoords='data', xytext=(10, 30), textcoords='offset points', arrowprops=dict(arrowstyle='->'))
plt.show()

运行结果:

题目三:绘制图表

编写程序。按照如下要求绘制图表:

(1)画布被规划为2*3的矩阵区域;

(2)在编号为3的区域中绘制包含一条正弦曲线的子图;

(3)在编号为6的区域中绘制包含一条余弦曲线的子图;

(4)共享两个子图的x轴。

最终效果图

运行代码:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
sin, cos = np.sin(x), np.cos(x)
ax_one = plt.subplot(233)
ax_one.plot(x, sin)
ax_two = plt.subplot(236, sharex=ax_one)
ax_two.plot(x, cos)
plt.show()

运行结果:

题目四:按照自定义的布局结构绘制子图

编写程序。按照自定义的布局结构绘制子图,具体下图

自定义的布局结构

运行代码:

#按照自定义的布局结构绘制子图
import matplotlib.pyplot as plt

fig = plt.figure(constrained_layout = True)
gs = fig.add_gridspec(3, 4)
fig.add_subplot(gs[0, :])
fig.add_subplot(gs[1, :2])
fig.add_subplot(gs[1, 2:])
fig.add_subplot(gs[2, 0])
fig.add_subplot(gs[2, 1:])

plt.show()

运行结果:

题目五:编写如下图的气泡图

  编写程序。编写如下图的气泡图。

运行代码:

#气泡图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50)*300
colors = np.random.rand(50)

plt.scatter(x, y, s=size, c=colors, alpha=0.7, cmap='viridis')

plt.title('气泡图')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.colorbar()#显示颜色条
plt.show()

运行结果:

  • 23
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值