From d29b13b23ea600dc598590e16f9f3b6efbfa1a3c Mon Sep 17 00:00:00 2001 From: perillaroc Date: Wed, 28 Aug 2024 14:15:35 +0800 Subject: [PATCH] :bug: xticks and yticks may exceed area range. use xticks_interval/10 instead of xticks_interval when generate xticks. --- cedarkit/maps/domains/east_asia.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cedarkit/maps/domains/east_asia.py b/cedarkit/maps/domains/east_asia.py index 9af7981..3b70429 100644 --- a/cedarkit/maps/domains/east_asia.py +++ b/cedarkit/maps/domains/east_asia.py @@ -226,23 +226,27 @@ def render_main_layer(self, chart: "Chart") -> Layer: # 坐标轴 # area, main_xticks_interval, main_yticks_interval + # NOTE: 需要将边界点包含在内。 + # 当前方式存在问题,会将整形标签变为浮点类型 xticks = np.arange( area.start_longitude, - area.end_longitude + xticks_interval, + area.end_longitude + xticks_interval/10, xticks_interval ) yticks = np.arange( area.start_latitude, - area.end_latitude + yticks_interval, + area.end_latitude + yticks_interval/10, yticks_interval ) layer.set_axis(xticks=xticks, yticks=yticks) # 网格线 # 同坐标轴 - # 边界处是边框,不需要网格线,但需要坐标轴标注 - xlocator = xticks[1:-1] - ylocator = yticks[1:-1] + # 边界处是边框,不需要网格线,但需要坐标轴标注。边框会覆盖网格线,所以直接使用标签列表即可 + # xlocator = xticks[1:-1] + # ylocator = yticks[1:-1] + xlocator = xticks + ylocator = yticks layer.gridlines( xlocator=xlocator, ylocator=ylocator,