以下代码使用 Python 的 matplotlib 库绘制区域图,展示海域划分和通道标识,并利用填充色、文本和虚线等元素进行清晰的图形化展示。

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from openpyxl import load_workbook
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.title('区域图')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim([0, 2200])
plt.ylim([0, 1500])
# 定义 x 和 y 的值
x = np.array([0, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000])
y = np.array([0, 200, 400, 600, 800, 1000, 1200, 1400])
# 设置 x 轴刻度位置和标签
xticks = np.arange(0, 2201, 100) # 设置刻度位置
xtick_labels = [str(xtick) for xtick in xticks] # 设置刻度标签
plt.xticks(xticks, xtick_labels)
yticks = np.arange(0, 1501, 100) # 设置刻度位置
ytick_labels = [str(ytick) for ytick in yticks] # 设置刻度标签
plt.yticks(yticks, ytick_labels)
# 设置网格线
plt.gca().grid(True)
# A海域
xa = [1400, 1700, 1700, 1400]
ya = [300, 300, 800, 800]
# 绘制区域
plt.fill(xa, ya, color='red', alpha=0.5)
plt.text(1550, 550, 'A海域', fontsize=12, ha='center')
# B海域
xb = [1020, 1700, 1700, 1400, 1400, 1020]
yb = [100, 100, 300, 300, 800, 800]
# 绘制区域
plt.fill(xb, yb, color='skyblue', alpha=0.5)
plt.text(1360, 450, 'B海域', fontsize=12, ha='center')
#不可通行区
xc = [800, 900, 900, 800]
yc = [980, 980, 1500, 1500]
# 绘制区域
plt.fill(xc, yc, color='grey', alpha=0.5)
plt.text(850, 1200, '不可通行区域', fontsize=12, ha='center',va='center', rotation=90)
xd = [800, 900, 900, 800]
yd = [820, 820, 210, 210]
# 绘制区域
plt.fill(xd, yd, color='grey', alpha=0.5)
plt.text(850, 600, '不可通行区域', fontsize=12, ha='center',va='center', rotation=90)
xc = [800, 900, 900, 800]
yc = [130, 130, 0, 0]
# 绘制区域
plt.fill(xc, yc, color='grey', alpha=0.5)
#m通道
xm=[800,900,900,800]
ym=[980,980,820,820]
plt.fill(xm, ym, color='green', alpha=0.5)
plt.text(850, 900, 'M通道', fontsize=6, ha='center')
#n通道
xn=[800,900,900,800]
yn=[210,210,130,130]
plt.fill(xn, yn, color='green', alpha=0.5)
plt.text(850, 150, 'N通道', fontsize=6, ha='center')

# 绘制虚线分割线
plt.plot([0, 2200], [300, 300], color='black', linestyle='dashed')
plt.plot([0, 2200], [800, 800], color='black', linestyle='dashed')
plt.plot([510, 900], [980, 980], color='black', linestyle='dashed')
plt.plot([510, 900], [820, 820], color='black', linestyle='dashed')

plt.show()

代码解释:

  1. 导入必要的库:numpy 用于数值计算,matplotlib.pyplot 用于绘图,pandas 用于数据处理,openpyxl 用于读取 Excel 文件。
  2. 设置绘图参数:设置字体为 SimHei,防止中文乱码;设置坐标轴刻度和标签,并添加网格线。
  3. 定义海域坐标:使用列表存储每个海域的坐标点。
  4. 绘制海域区域:使用 plt.fill() 函数填充每个海域区域,并使用不同的颜色和透明度进行区分。
  5. 添加文本标签:使用 plt.text() 函数添加每个海域的名称标签,并设置位置、字体大小和水平对齐方式。
  6. 绘制不可通行区域:使用灰色填充色绘制不可通行区域。
  7. 绘制通道:使用绿色填充色绘制 M 通道和 N 通道。
  8. 绘制虚线分割线:使用 plt.plot() 函数绘制虚线分割线,以便更好地区分不同的区域。
  9. 显示图形:使用 plt.show() 函数显示绘制好的区域图。

该代码展示了如何使用 Python 的 matplotlib 库绘制区域图,并利用不同的元素进行清晰的图形化展示。你可以根据实际需要修改代码,例如添加更多海域、通道、分割线或其他元素。

Python 绘制区域图 - 海域划分与通道标识

原文地址: https://www.cveoy.top/t/topic/J3x 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录