-
“找茬”游戏
下面是一段某位本科生在撰写“工作面风量监测图”时写的代码,其中存在 3 处典型的概念混淆或语法错误(不考虑缩进问题)。请找出这 3 处错误,说明原因,并用纯正的“面向对象”风格将其改写为正确的代码。
import matplotlib.pyplot as plt fig, ax = plt.subplots() time = [1, 2, 3, 4] wind = [120, 118, 122, 119] # 绘制折线 ax.plot(time, wind, label="进风量") # 设置标题和标签(这里出了问题!) plt.title("工作面进风量监测") ax.xlabel("时间 (h)") plt.ylabel("风量 (m^3/min)") ax.legend() plt.show() -
巷道表面位移预警图
背景: 在矿井巷道掘进过程中,顶板的下沉量是评估巷道支护稳定性的核心指标。假设《煤矿安全规程》规定该类型巷道的最大允许顶板下沉量为 $150,\mathrm{mm}$。
任务: 请编写一段完整的 Python 程序,利用以下监测数据绘制一张标准的工程预警分析图,必须满足以下学术细节要求:
- 包含本章要求的“跨平台中文字体防御代码”与“MathText 公式引擎”。
- 坐标轴标签必须包含物理量符号与正体单位,例如:时间 $t$ ($\mathrm{d}$)、下沉量 $D$ ($\mathrm{mm}$)。
- 使用
axhline在 $150,\mathrm{mm}$ 处画一条红色的虚线(警戒线),并添加图例“位移极限”。 - 使用
axhspan将 $150,\mathrm{mm}$ 以上的区域填充为浅红色(alpha=0.1),表示“支护失效危险区”。 - 使用
annotate加上箭头,指向第 15 天的数据点,并标注文本“突破预警值”。
实测数据:
- 监测时间
days(单位: d):[0, 3, 6, 9, 12, 15, 18, 21, 24] - 顶板下沉量
subsidence(单位: mm):[0, 12, 35, 68, 105, 155, 182, 195, 201]
-
多图排版综合挑战:岩体单轴压缩破坏的前兆特征
背景: 在岩石力学实验中,为了研究岩石(如砂岩)在受压破坏前的前兆特征,研究人员通常会同步监测“偏应力”与内部微破裂产生的“声发射(Acoustic Emission, AE)振铃计数”。这需要将不同量纲的数据放在同一时间轴上进行比对。
任务: 请运用
plt.subplots(nrows=2, ncols=1, sharex=True)机制,绘制一张 2 行 1 列的对析图,并最终导出为高质量的学术矢量图。实测数据:
- 加载时间
time(s):[0, 10, 20, 30, 40, 50, 60] - 偏应力张量第二不变量 $J_2$ ($\mathrm{MPa^2}$):
[0, 25, 80, 150, 240, 210, 50](注:40秒时达到峰值后破坏) - 声发射振铃计数
ae_counts(次):[5, 12, 18, 45, 320, 850, 150]
图表要求:
- 上半区 (
ax1):绘制加载时间与偏应力 $J_2$ 的折线图,颜色使用蓝色 (steelblue),线宽设为 2。 - 下半区 (
ax2):绘制加载时间与声发射计数的柱状图 (ax.bar),颜色使用橙色 (darkorange)。 - 坐标轴标签排版:上半区图纸只需带有标题(如“岩石破裂过程的多场响应特征”),隐藏 X 轴标签(因为与下半区共享);下半区必须标明 X 轴标签为
加载时间 \(t\) (\(\mathrm{s}\))。 - 高质量输出:使用
tight_layout()防止重叠,并使用savefig将图表导出为名为rock_failure_analysis.pdf的文件,确保裁剪掉多余白边(bbox_inches="tight")。
- 加载时间