scverse / scverse/spatialdata-plot
Vega-like viewconfigurations
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 86
- Fork
- 21
- Merge trung bình
- 14 giờ 50 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
During the hackathon in Basel we have brainstormed on the specification that would allow for viewing data across the spatialdata visualization ecosystem with one viewconfig. This issue describes the current ideas of this viewconfiguration.
Data
The first field in the view configuration is related to the data and specifies the zarr store and the particular elements that we want to visualize. It also includes a filtering step. For example:
"schema": "https://spatialdata-plot.github.io/schema/viewconfig/v1.json"
"height": 15 # This is in inches
"width": 14
"data": [
{
"name": "{UUID1}",
"url": "blobs.zarr"
"format": "spatialdata",
"version": "0.2.0"
},
{
"name": "{UUID2}",
"format": "spatialdata_image",
"version": "0.1.0",
"source": "UUID1",
"transform": [
{
"type": "filter",
"expr": "datum['images/blobs_image']"
}
]
},
]
Here the first block contains the location of the zarr store. We specify the particular format of the zarr store and the version. The name is serving as a UUID in the document so that other blocks in the configuration can refer to a particular block. Typically, on the data a transform is applied. In most cases for SpatialData this would be a filter transform initially to get the particular element that we require. The height and width is the overall size in inches of the plot.
Scales
Scales provide a mapping of a series of values to a different series of values, whether that is axes limits and ticks
or a mapping of values to color.
"scales": [
{ <!-- Example of scale for continuous variable-->
"name": "color_0", <!-- can chain render_... calls that would use different normalize objects-->
"type": "linear",
"zero": true, <!-- Whether to include 0 value in the color mapping, useful for labels-->
"domain": [0, 1], <!-- this is the vmin vmax-->
"clamp": true, <!-- This is the clip of the normalize object in matplotlib-->
"range": {"scheme": "gray"}
},
{ <!-- Example of scale for categorical variable-->
"name": "color",
"type": "ordinal",
"domain": {"data": "UUID of spatial element", "field": "category"}, <!-- category here is column-->
"range": {"scheme": "category20"} <!--This is only required if there are no hex strings specified before, in some cases a user can already have the hexstrings representing color. In this case the color encoding in marks must be used.-->
},
{
"name": "X_SCALE",
"type": "linear",
"zero": true,
"domain": [-180, 180], <!-- This is the extent of the axes after having applied the transform to coordinate system-->
"range": "width" <!-- refers to plot width-->
},
{
"name": "Y_SCALE",
"type": "linear",
"zero": true,
"domain": [-81, 87],
"range": "height" <!-- refers to plot height-->
}
],
Marks
Marks define the actual plots of the particular elements.
"marks": [
{
"type": "raster", <!-- type of element -->
"from": {"data": "UUID3"},
"zindex": 0,
"encode": {
<!-- "channel": {"value": 0}, // with "data": "UUID2" -->
"opacity": {"value": 1}, <!-- sdata-plot "alpha". Also, it was fillOpacity -->
"color": {"scale": "normalize", "field": "channel_zero_name"}
<!--"zindex": {"field": "point_importance"}-->
}
},
{
"type": "shape", <!-- type of element -->
"from": {"data": "UUID5"},
"zindex": 1,
"encode": {
<!-- "channel": {"value": 0},
"opacity": {"value": 1}, <!-- sdata-plot "alpha". Also, it was fillOpacity -->
"color": {hexstrings} <!-- in case of predetermined hexstrings -->
<!--"zindex": {"field": "point_importance"}-->
}
}
],
Hướng dẫn đóng góp
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.
Hướng nghiên cứu
Bắt đầu bằng việc xem xét các phần cấu hình view được đề xuất cho dữ liệu, tỷ lệ và mark, bao gồm các tham chiếu SpatialData và các phép biến đổi của chúng. Được xem là hoàn tất khi đặc tả cấu hình view đã được giải quyết và thống nhất trong toàn bộ hệ sinh thái trực quan hóa spatialdata; issue không nêu tên các tệp triển khai hoặc các bài kiểm thử.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- data-visualization
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 20/100