Support for Basemap
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Lĩnh vực
- data-visualization
Hướng nghiên cứu
Bắt đầu bằng việc xem xét triển khai geom_basemap tùy chỉnh được đề xuất và cách plotnine.ggplot xử lý giai đoạn vẽ của nó. So sánh ví dụ basemap của contextily với các khái niệm của Grammar of Graphics, sau đó xác định API và danh mục phù hợp cho việc hỗ trợ basemap. Được xem là hoàn tất khi có một thiết kế đã thống nhất cùng với phần triển khai và phạm vi bao phủ cho các cách sử dụng được hỗ trợ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
@nimisha-18, I was able to add a basemap by implementing a custom geom subtype that adds the basemap during plotnine.ggplot's draw phase:
from __future__ import annotations
import typing
import pandas as pd
from plotnine.geoms.geom import geom
import contextily as ctx
if typing.TYPE_CHECKING:
from typing import Any
import pandas as pd
from matplotlib.axes import Axes
from plotnine.coords.coord import coord
from plotnine.iapi import panel_view
class geom_basemap(geom):
DEFAULT_PARAMS = {
"stat": "identity",
"position": "identity",
"na_rm": False,
"crs": "EPSG:3857",
"source": ctx.providers.OpenStreetMap.Mapnik,
}
def draw_panel(
self,
data: pd.DataFrame,
panel_params: panel_view,
coord: coord,
ax: Axes,
**params: Any,
):
crs = params["crs"]
source = params["source"]
ctx.add_basemap(ax, crs=crs, source=source)
To use it in your example, you would just add it like any other layer:
plot3 = plot2 + geom_basemap(source=ctx.providers.OpenStreetMap.Mapnik)
plot3.show()
Aside, the geom_basemap concept as a geom, at least to me, doesn't fit well with the ideas outlines in The Grammar of Graphics. Im not sure what category a basemap falls within so calling this a geom is likely conceptually incorrect. Just something to think about.
Originally posted by @aaraney in https://github.com/has2k1/plotnine/discussions/850#discussioncomment-12436571
- Ngôn ngữ chính
- Python
- Star
- 4.8k
- Fork
- 260
- Merge trung bình
- 2 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của has2k1/plotnine
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Enhancement
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 55/100
has2k1/plotnine#1141 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
has2k1/plotnine#1081 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Discussion
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
has2k1/plotnine#1047 · 15 bình luận · 3 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Documentation Plot Composition Question
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
has2k1/plotnine#1036 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của has2k1/plotnine
Issue tương tự
-
enhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Community
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
kedro-org/kedro-plugins#1575 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
hive size:simple
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Significant-Gravitas/AutoGPT#16733 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
changelog investigate
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 74/100
ramnes/notion-sdk-py#444 ·