pyecharts/test/test_map.py
2023-03-16 16:51:02 +08:00

681 lines
24 KiB
Python

from unittest.mock import patch
import simplejson as json
from nose.tools import assert_equal
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
@patch("pyecharts.render.engine.write_utf8_html_file")
def test_map_base(fake_writer):
c = Map().add(
"商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china"
)
c.render()
_, content = fake_writer.call_args[0]
assert_equal(c.theme, "white")
assert_equal(c.renderer, "canvas")
@patch("pyecharts.render.engine.write_utf8_html_file")
def test_map_item_base(fake_writer):
location_name = ["广东"]
location_data = [[100, 200, 300, 400]]
mock_data = [
opts.MapItem(name=d[0], value=d[1])
for d in list(zip(location_name, location_data))
]
c = Map().add("商家A", mock_data, "china")
c.render()
_, content = fake_writer.call_args[0]
assert_equal(c.theme, "white")
assert_equal(c.renderer, "canvas")
def test_map_emphasis():
c = Map().add(
"商家A",
[list(z) for z in zip(Faker.provinces, Faker.values())],
"china",
emphasis_label_opts=opts.LabelOpts(is_show=False),
emphasis_itemstyle_opts=opts.ItemStyleOpts(
border_color="white", area_color="red"
),
)
options = json.loads(c.dump_options())
expected = {
"label": {"show": False, "margin": 8},
"itemStyle": {"borderColor": "white", "areaColor": "red"},
}
assert_equal(expected, options["series"][0]["emphasis"])
def test_map_add_geo_json():
geo_json = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"coordinates": [
[
[
118.57812,
26.557402
],
[
118.590394,
26.553081
],
[
118.617087,
26.553059
],
[
118.616111,
26.527755
],
[
118.604148,
26.504904
],
[
118.608376,
26.497294
],
[
118.59623,
26.478385
],
[
118.578807,
26.473754
],
[
118.56458,
26.465373
],
[
118.554474,
26.445927
],
[
118.566533,
26.432851
],
[
118.54632,
26.417928
],
[
118.548079,
26.396854
],
[
118.560868,
26.378456
],
[
118.566104,
26.358824
],
[
118.589836,
26.373463
],
[
118.590222,
26.359802
],
[
118.595801,
26.347859
],
[
118.60369,
26.350515
],
[
118.621191,
26.361783
],
[
118.631475,
26.354788
],
[
118.656162,
26.340797
],
[
118.662964,
26.322656
],
[
118.653222,
26.313452
],
[
118.661204,
26.296272
],
[
118.664809,
26.270524
],
[
118.678076,
26.279442
],
[
118.68585,
26.28836
],
[
118.697277,
26.287725
],
[
118.693599,
26.305557
],
[
118.699533,
26.311078
],
[
118.724644,
26.337465
],
[
118.75152,
26.330542
],
[
118.76682,
26.327157
],
[
118.775794,
26.325234
],
[
118.797129,
26.340542
],
[
118.800059,
26.357136
],
[
118.785137,
26.365115
],
[
118.771085,
26.385377
],
[
118.750534,
26.390836
],
[
118.761617,
26.420202
],
[
118.745161,
26.427236
],
[
118.732826,
26.437957
],
[
118.734248,
26.45448
],
[
118.737767,
26.472405
],
[
118.748152,
26.481723
],
[
118.754353,
26.487893
],
[
118.748195,
26.494063
],
[
118.748238,
26.506403
],
[
118.762057,
26.508959
],
[
118.780881,
26.504741
],
[
118.784598,
26.491919
],
[
118.798615,
26.484013
],
[
118.805766,
26.474876
],
[
118.794544,
26.459227
],
[
118.809178,
26.445137
],
[
118.805487,
26.430479
],
[
118.822825,
26.420838
],
[
118.85278,
26.438461
],
[
118.878615,
26.469605
],
[
118.898227,
26.473649
],
[
118.91784,
26.472777
],
[
118.949511,
26.464885
],
[
118.951619,
26.487056
],
[
118.943747,
26.493838
],
[
118.942741,
26.507994
],
[
118.962064,
26.530816
],
[
118.997866,
26.528448
],
[
119.000968,
26.556946
],
[
119.009563,
26.560258
],
[
119.015767,
26.581621
],
[
119.032957,
26.594999
],
[
119.062507,
26.602235
],
[
119.075945,
26.587083
],
[
119.06329,
26.569473
],
[
119.076433,
26.569869
],
[
119.092152,
26.562702
],
[
119.101005,
26.572732
],
[
119.103604,
26.555941
],
[
119.119788,
26.539555
],
[
119.132,
26.538732
],
[
119.144213,
26.536681
],
[
119.171383,
26.548551
],
[
119.194922,
26.568383
],
[
119.212185,
26.547589
],
[
119.218757,
26.53412
],
[
119.229448,
26.526792
],
[
119.251174,
26.53241
],
[
119.253859,
26.546561
],
[
119.272336,
26.541055
],
[
119.281139,
26.534343
],
[
119.287711,
26.577995
],
[
119.301835,
26.593391
],
[
119.329006,
26.578699
],
[
119.354338,
26.599587
],
[
119.363191,
26.603281
],
[
119.376544,
26.604515
],
[
119.381656,
26.62171
],
[
119.397376,
26.627859
],
[
119.387272,
26.641423
],
[
119.375795,
26.639028
],
[
119.358824,
26.632951
],
[
119.351467,
26.648969
],
[
119.326158,
26.676212
],
[
119.261119,
26.690807
],
[
119.241593,
26.742684
],
[
119.226535,
26.728854
],
[
119.204611,
26.727288
],
[
119.182686,
26.729403
],
[
119.167628,
26.711891
],
[
119.146452,
26.731884
],
[
119.115663,
26.73961
],
[
119.047905,
26.728693
],
[
119.045955,
26.74669
],
[
119.054992,
26.764685
],
[
119.051092,
26.776147
],
[
119.042385,
26.776575
],
[
119.033679,
26.770872
],
[
119.012146,
26.761305
],
[
118.982497,
26.773075
],
[
118.945981,
26.77013
],
[
118.926007,
26.749652
],
[
118.882686,
26.738982
],
[
118.887478,
26.757469
],
[
118.903255,
26.76737
],
[
118.923824,
26.795751
],
[
118.890803,
26.813278
],
[
118.843328,
26.798569
],
[
118.827143,
26.786924
],
[
118.795852,
26.783859
],
[
118.771428,
26.805618
],
[
118.741511,
26.818793
],
[
118.728195,
26.830895
],
[
118.722432,
26.851573
],
[
118.739746,
26.856167
],
[
118.696095,
26.869031
],
[
118.664633,
26.86214
],
[
118.63317,
26.855248
],
[
118.620069,
26.839818
],
[
118.635807,
26.832963
],
[
118.638444,
26.810674
],
[
118.625974,
26.788073
],
[
118.623117,
26.769147
],
[
118.600382,
26.7093
],
[
118.582339,
26.703842
],
[
118.569788,
26.680592
],
[
118.57902,
26.673354
],
[
118.594415,
26.673546
],
[
118.594991,
26.656748
],
[
118.587905,
26.631739
],
[
118.57812,
26.557402
]
]
],
"type": "Polygon"
}
}
]
}
c = Map()
c.add_geo_json(geo_json=geo_json)
assert_equal(c._geo_json, geo_json)