Polar and radar data from Python
page=canvas(size=(228 mm,132 mm),background="#ffffff")s=plot_style(font_family="DejaVu Sans",font_size=7 pt)colors=color_scale(vmin=0,vmax=4,cmap="viridis")p=plot(projection= polar,size=(105 mm,110 mm),plot_area=box(offset=(20 mm, 22 mm), size=(66 mm, 66 mm)),style=s, theta=axis(ticks=[0,90,180,270]),r=axis(range=(0,3),ticks=[1,2,3],tick_color="#ffffff",tick_font_size=6 pt))p.contourf(z=array(src="polar-data.assets/field-1f0c1f4eca6acc4d.json"),theta=array(src="polar-data.assets/theta-a1a6d05666acec02.json"),r=array(src="polar-data.assets/radius-c2faeb8428cb0845.json"),levels=[0,0.5,1,1.5,2,2.5,3,3.5],periodic=true,color_scale=colors)a=page.add(p,offset=(3 mm,0 mm))page.add(text(content="(a) Missing polar samples",font_family="DejaVu Sans",font_size=9 pt),offset=(13 mm,5 mm))q=plot(projection= radar,size=(118 mm,110 mm),plot_area=box(offset=(25 mm, 22 mm), size=(66 mm, 66 mm)),style=s, categories=["Strength","Density","Cost","Temperature","Life"],ranges=[(0,1000),(0,10),(0,100),(-50,150),(0,100)],r=axis(ticks=[0.5,1],grid= major,tick_font_size=5 pt))q.area(values=array(src="polar-data.assets/values-24bfdcd1baba759e.json"),fill="#264b69",opacity=0.2)q.line(values=array(src="polar-data.assets/values-24bfdcd1baba759e.json"),color="#264b69",marker= diamond,marker_size=1.6 mm)b=page.add(q,offset=(109 mm,0 mm))page.add(text(content="(b) Raw units from Python",font_family="DejaVu Sans",font_size=9 pt),offset=(126 mm,5 mm))page.add(colorbar(scale=colors,orientation= horizontal,length=72 mm,thickness=3 mm,ticks=[0,1,2,3,4],label="Field",style=s),offset=(27 mm,107 mm))# Generated by LayMesh Jupyter; edit the Notebook cell instead.# BEGIN DEMOpage=canvas(size=(228 mm,132 mm),background="#ffffff")s=plot_style(font_family="DejaVu Sans",font_size=7 pt)colors=color_scale(vmin=0,vmax=4,cmap="viridis")p=plot(projection= polar,size=(105 mm,110 mm),plot_area=box(offset=(20 mm, 22 mm), size=(66 mm, 66 mm)),style=s, theta=axis(ticks=[0,90,180,270]),r=axis(range=(0,3),ticks=[1,2,3],tick_color="#ffffff",tick_font_size=6 pt))p.contourf(z=array(src="polar-data.assets/field-1f0c1f4eca6acc4d.json"),theta=array(src="polar-data.assets/theta-a1a6d05666acec02.json"),r=array(src="polar-data.assets/radius-c2faeb8428cb0845.json"),levels=[0,0.5,1,1.5,2,2.5,3,3.5],periodic=true,color_scale=colors)a=page.add(p,offset=(3 mm,0 mm))page.add(text(content="(a) Missing polar samples",font_family="DejaVu Sans",font_size=9 pt),offset=(13 mm,5 mm))q=plot(projection= radar,size=(118 mm,110 mm),plot_area=box(offset=(25 mm, 22 mm), size=(66 mm, 66 mm)),style=s, categories=["Strength","Density","Cost","Temperature","Life"],ranges=[(0,1000),(0,10),(0,100),(-50,150),(0,100)],r=axis(ticks=[0.5,1],grid= major,tick_font_size=5 pt))q.area(values=array(src="polar-data.assets/values-24bfdcd1baba759e.json"),fill="#264b69",opacity=0.2)q.line(values=array(src="polar-data.assets/values-24bfdcd1baba759e.json"),color="#264b69",marker= diamond,marker_size=1.6 mm)b=page.add(q,offset=(109 mm,0 mm))page.add(text(content="(b) Raw units from Python",font_family="DejaVu Sans",font_size=9 pt),offset=(126 mm,5 mm))page.add(colorbar(scale=colors,orientation= horizontal,length=72 mm,thickness=3 mm,ticks=[0,1,2,3,4],label="Field",style=s),offset=(27 mm,107 mm))# END DEMO[[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.125,0.13036498385544354,0.13552379439003998,0.14027818140803905,0.14444543648263006,0.14786541433831998,0.15040668714406039,0.15197159521108883,0.1525,0.15197159521108883,0.15040668714406039,0.14786541433831998,0.14444543648263006,0.14027818140803905,0.13552379439003998,0.1303649838554435,0.125,0.11963501614455647,0.11447620560996004,0.10972181859196094,0.10555456351736994,0.10213458566168,0.09959331285593961,0.09802840478891117,0.0975,0.09802840478891116,0.09959331285593961,0.10213458566168,0.10555456351736994,0.10972181859196094,0.11447620560996004,0.11963501614455646],[0.25,0.2607299677108871,0.27104758878007995,0.2805563628160781,0.2888908729652601,0.29573082867663997,0.30081337428812077,0.30394319042217766,0.305,0.30394319042217766,0.30081337428812077,0.29573082867663997,0.2888908729652601,0.2805563628160781,0.27104758878007995,0.260729967710887,0.25,0.23927003228911295,0.22895241121992008,0.21944363718392187,0.21110912703473989,0.20426917132336,0.19918662571187923,0.19605680957782234,0.195,0.19605680957782232,0.19918662571187923,0.20426917132336,0.21110912703473989,0.21944363718392187,0.22895241121992008,0.23927003228911292],[0.375,0.3910949515663306,0.4065713831701199,0.42083454422411715,0.43333630944789014,0.4435962430149599,0.4512200614321812,0.4559147856332665,0.4575,0.4559147856332665,0.4512200614321812,0.4435962430149599,0.43333630944789014,0.42083454422411715,0.4065713831701199,0.39109495156633056,0.375,0.35890504843366944,0.34342861682988013,0.3291654557758828,0.31666369055210986,0.30640375698504,0.2987799385678188,0.2940852143667335,0.2925,0.29408521436673346,0.2987799385678188,0.30640375698504,0.31666369055210986,0.3291654557758828,0.34342861682988013,0.3589050484336694],[0.5,0.5214599354217742,0.5420951775601599,0.5611127256321562,0.5777817459305202,0.5914616573532799,0.6016267485762415,0.6078863808443553,0.61,0.6078863808443553,0.6016267485762415,0.5914616573532799,0.5777817459305202,0.5611127256321562,0.5420951775601599,0.521459935421774,0.5,0.4785400645782259,0.45790482243984015,0.43888727436784375,0.42221825406947977,0.40853834264672,0.39837325142375846,0.3921136191556447,0.39,0.39211361915564463,0.39837325142375846,0.40853834264672,0.42221825406947977,0.43888727436784375,0.45790482243984015,0.47854006457822584],[0.625,0.6518249192772176,0.6776189719501999,0.7013909070401952,0.7222271824131503,0.7393270716916,0.7520334357203019,0.7598579760554441,0.7625,0.7598579760554441,0.7520334357203019,0.7393270716916,0.7222271824131503,0.7013909070401952,0.6776189719501999,0.6518249192772175,0.625,0.5981750807227824,0.5723810280498002,0.5486090929598046,0.5277728175868497,0.5106729283084,0.4979665642796981,0.49014202394455586,0.48750000000000004,0.4901420239445558,0.4979665642796981,0.5106729283084,0.5277728175868497,0.5486090929598046,0.5723810280498002,0.5981750807227824],[0.75,0.7821899031326612,0.8131427663402399,0.8416690884482343,0.8666726188957803,0.8871924860299198,0.9024401228643624,0.911829571266533,0.915,0.911829571266533,0.9024401228643624,0.8871924860299198,0.8666726188957803,0.8416690884482343,0.8131427663402399,0.7821899031326611,0.75,0.7178100968673389,0.6868572336597603,0.6583309115517656,0.6333273811042197,0.61280751397008,0.5975598771356376,0.588170428733467,0.585,0.5881704287334669,0.5975598771356376,0.61280751397008,0.6333273811042197,0.6583309115517656,0.6868572336597603,0.7178100968673388],[0.875,0.9125548869881048,0.9486665607302798,0.9819472698562733,1.0111180553784105,1.0350579003682399,1.0528468100084227,1.0638011664776217,1.0675,1.0638011664776217,1.0528468100084227,1.0350579003682399,1.0111180553784105,0.9819472698562733,0.9486665607302798,0.9125548869881046,0.875,0.8374451130118953,0.8013334392697202,0.7680527301437265,0.7388819446215896,0.71494209963176,0.6971531899915773,0.6861988335223782,0.6825,0.6861988335223781,0.6971531899915773,0.71494209963176,0.7388819446215896,0.7680527301437265,0.8013334392697202,0.8374451130118952],[1.0,1.0429198708435483,1.0841903551203198,1.1222254512643124,1.1555634918610405,1.1829233147065599,1.203253497152483,1.2157727616887106,1.22,1.2157727616887106,1.203253497152483,1.1829233147065599,1.1555634918610405,1.1222254512643124,1.0841903551203198,1.042919870843548,1.0,0.9570801291564518,0.9158096448796803,0.8777745487356875,0.8444365081389595,0.81707668529344,0.7967465028475169,0.7842272383112894,0.78,0.7842272383112893,0.7967465028475169,0.81707668529344,0.8444365081389595,0.8777745487356875,0.9158096448796803,0.9570801291564517],[1.125,1.1732848546989918,1.2197141495103598,1.2625036326723516,1.3000089283436704,1.3307887290448799,1.3536601842965434,1.3677443568997996,1.3725,1.3677443568997996,1.3536601842965434,1.3307887290448799,1.3000089283436704,1.2625036326723516,1.2197141495103598,1.1732848546989916,1.125,1.0767151453010082,1.0302858504896404,0.9874963673276484,0.9499910716563295,0.91921127095512,0.8963398157034566,0.8822556431002005,0.8775000000000001,0.8822556431002004,0.8963398157034566,0.91921127095512,0.9499910716563295,0.9874963673276484,1.0302858504896404,1.0767151453010082],[1.25,1.3036498385544353,1.3552379439003999,1.4027818140803905,1.4444543648263006,1.4786541433832,1.5040668714406038,1.5197159521108883,1.525,1.5197159521108883,1.5040668714406038,1.4786541433832,1.4444543648263006,1.4027818140803905,1.3552379439003999,1.303649838554435,1.25,1.1963501614455647,1.1447620560996004,1.0972181859196093,1.0555456351736994,1.0213458566168,0.9959331285593962,0.9802840478891117,0.9750000000000001,0.9802840478891116,0.9959331285593962,1.0213458566168,1.0555456351736994,1.0972181859196093,1.1447620560996004,1.1963501614455647],[1.375,1.434014822409879,1.4907617382904397,1.5430599954884294,1.5888998013089306,1.62651955772152,1.6544735585846642,1.671687547321977,1.6775,1.671687547321977,1.6544735585846642,1.62651955772152,1.5888998013089306,1.5430599954884294,1.4907617382904397,1.4340148224098785,1.375,1.3159851775901212,1.2592382617095603,1.2069400045115704,1.1611001986910694,1.12348044227848,1.0955264414153358,1.078312452678023,1.0725,1.0783124526780228,1.0955264414153358,1.12348044227848,1.1611001986910694,1.2069400045115704,1.2592382617095603,1.315985177590121],[1.5,1.5643798062653225,1.6262855326804797,1.6833381768964686,1.7333452377915606,1.7743849720598397,1.8048802457287247,1.823659142533066,1.83,1.823659142533066,1.8048802457287247,1.7743849720598397,null,null,null,1.5643798062653222,1.5,1.4356201937346778,1.3737144673195205,1.3166618231035312,1.2666547622084394,1.22561502794016,1.1951197542712753,1.176340857466934,1.17,1.1763408574669338,1.1951197542712753,1.22561502794016,1.2666547622084394,1.3166618231035312,1.3737144673195205,1.4356201937346775],[1.625,1.694744790120766,1.7618093270705197,1.8236163583045077,1.8777906742741908,1.9222503863981597,1.955286932872785,1.9756307377441549,1.9825,1.9756307377441549,1.955286932872785,1.9222503863981597,null,null,null,1.6947447901207657,1.625,1.5552552098792343,1.4881906729294805,1.4263836416954923,1.3722093257258092,1.32774961360184,1.294713067127215,1.2743692622558451,1.2675,1.2743692622558451,1.294713067127215,1.32774961360184,1.3722093257258092,1.4263836416954923,1.4881906729294805,1.555255209879234],[1.75,1.8251097739762097,1.8973331214605595,1.9638945397125467,2.022236110756821,2.0701158007364797,2.1056936200168455,2.1276023329552434,2.135,2.1276023329552434,2.1056936200168455,2.0701158007364797,null,null,null,1.8251097739762092,1.75,1.6748902260237906,1.6026668785394405,1.536105460287453,1.4777638892431793,1.42988419926352,1.3943063799831545,1.3723976670447564,1.365,1.3723976670447562,1.3943063799831545,1.42988419926352,1.4777638892431793,1.536105460287453,1.6026668785394405,1.6748902260237903],[1.875,1.9554747578316531,2.0328569158505996,2.1041727211205856,2.1666815472394507,2.2179812150747997,2.2561003071609056,2.2795739281663323,2.2875,2.2795739281663323,2.2561003071609056,2.2179812150747997,2.1666815472394507,2.1041727211205856,2.0328569158505996,1.9554747578316527,1.875,1.794525242168347,1.7171430841494006,1.6458272788794142,1.583318452760549,1.5320187849252,1.4938996928390942,1.4704260718336677,1.4625000000000001,1.4704260718336675,1.4938996928390942,1.5320187849252,1.583318452760549,1.6458272788794142,1.7171430841494006,1.7945252421683469],[2.0,2.0858397416870966,2.1683807102406396,2.244450902528625,2.311126983722081,2.3658466294131197,2.406506994304966,2.4315455233774212,2.44,2.4315455233774212,2.406506994304966,2.3658466294131197,2.311126983722081,2.244450902528625,2.1683807102406396,2.085839741687096,2.0,1.9141602583129036,1.8316192897593606,1.755549097471375,1.688873016277919,1.63415337058688,1.5934930056950338,1.5684544766225788,1.56,1.5684544766225785,1.5934930056950338,1.63415337058688,1.688873016277919,1.755549097471375,1.8316192897593606,1.9141602583129034],[2.125,2.21620472554254,2.3039045046306796,2.384729083936664,2.455572420204711,2.5137120437514398,2.5569136814490268,2.58351711858851,2.5925,2.58351711858851,2.5569136814490268,2.5137120437514398,2.455572420204711,2.384729083936664,2.3039045046306796,2.2162047255425397,2.125,2.03379527445746,1.9460954953693206,1.8652709160633358,1.794427579795289,1.73628795624856,1.6930863185509735,1.6664828814114898,1.6575,1.6664828814114896,1.6930863185509735,1.73628795624856,1.794427579795289,1.8652709160633358,1.9460954953693206,2.03379527445746],[2.25,2.3465697093979836,2.4394282990207197,2.525007265344703,2.600017856687341,2.6615774580897598,2.707320368593087,2.735488713799599,2.745,2.735488713799599,2.707320368593087,2.6615774580897598,2.600017856687341,2.525007265344703,2.4394282990207197,2.346569709397983,2.25,2.1534302906020164,2.0605717009792808,1.974992734655297,1.899982143312659,1.83842254191024,1.792679631406913,1.764511286200401,1.7550000000000001,1.7645112862004009,1.792679631406913,1.83842254191024,1.899982143312659,1.974992734655297,2.0605717009792808,2.1534302906020164],[2.375,2.476934693253427,2.5749520934107597,2.665285446752742,2.744463293169971,2.8094428724280798,2.8577270557371475,2.8874603090106876,2.8975,2.8874603090106876,2.8577270557371475,2.8094428724280798,2.744463293169971,2.665285446752742,2.5749520934107597,2.4769346932534266,2.375,2.273065306746573,2.1750479065892407,2.0847145532472577,2.005536706830029,1.94055712757192,1.8922729442628528,1.8625396909893124,1.8525,1.862539690989312,1.8922729442628528,1.94055712757192,2.005536706830029,2.0847145532472577,2.1750479065892407,2.273065306746573],[2.5,2.6072996771088706,2.7104758878007997,2.805563628160781,2.8889087296526013,2.9573082867664,3.0081337428812076,3.0394319042217766,3.05,3.0394319042217766,3.0081337428812076,2.9573082867664,2.8889087296526013,2.805563628160781,2.7104758878007997,2.60729967710887,2.5,2.3927003228911294,2.2895241121992007,2.1944363718392186,2.1110912703473987,2.0426917132336,1.9918662571187924,1.9605680957782234,1.9500000000000002,1.9605680957782232,1.9918662571187924,2.0426917132336,2.1110912703473987,2.1944363718392186,2.2895241121992007,2.3927003228911294],[2.625,2.7376646609643145,2.8459996821908393,2.94584180956882,3.033354166135231,3.10517370110472,3.158540430025268,3.1914034994328655,3.2025,3.1914034994328655,3.158540430025268,3.10517370110472,3.033354166135231,2.94584180956882,2.8459996821908393,2.7376646609643136,2.625,2.512335339035686,2.4040003178091607,2.30415819043118,2.216645833864769,2.14482629889528,2.091459569974732,2.0585965005671345,2.0475,2.0585965005671345,2.091459569974732,2.14482629889528,2.216645833864769,2.30415819043118,2.4040003178091607,2.5123353390356855],[2.75,2.868029644819758,2.9815234765808794,3.086119990976859,3.177799602617861,3.25303911544304,3.3089471171693283,3.343375094643954,3.355,3.343375094643954,3.3089471171693283,3.25303911544304,3.177799602617861,3.086119990976859,2.9815234765808794,2.868029644819757,2.75,2.6319703551802425,2.5184765234191206,2.4138800090231407,2.322200397382139,2.24696088455696,2.1910528828306717,2.156624905356046,2.145,2.1566249053560456,2.1910528828306717,2.24696088455696,2.322200397382139,2.4138800090231407,2.5184765234191206,2.631970355180242],[2.875,2.9983946286752015,3.1170472709709194,3.226398172384898,3.3222450391004914,3.40090452978136,3.459353804313389,3.495346689855043,3.5075,3.495346689855043,3.459353804313389,3.40090452978136,3.3222450391004914,3.226398172384898,3.1170472709709194,2.9983946286752006,2.875,2.751605371324799,2.632952729029081,2.5236018276151015,2.4277549608995086,2.34909547021864,2.290646195686611,2.254653310144957,2.2425,2.2546533101449566,2.290646195686611,2.34909547021864,2.4277549608995086,2.5236018276151015,2.632952729029081,2.7516053713247985],[3.0,3.128759612530645,3.2525710653609594,3.366676353792937,3.466690475583121,3.5487699441196794,3.6097604914574495,3.647318285066132,3.66,3.647318285066132,3.6097604914574495,3.5487699441196794,3.466690475583121,3.366676353792937,3.2525710653609594,3.1287596125306445,3.0,2.8712403874693555,2.747428934639041,2.6333236462070624,2.533309524416879,2.45123005588032,2.3902395085425505,2.352681714933868,2.34,2.3526817149338677,2.3902395085425505,2.45123005588032,2.533309524416879,2.6333236462070624,2.747428934639041,2.871240387469355]][0.0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1.0,1.125,1.25,1.375,1.5,1.625,1.75,1.875,2.0,2.125,2.25,2.375,2.5,2.625,2.75,2.875,3.0][0.0,11.25,22.5,33.75,45.0,56.25,67.5,78.75,90.0,101.25,112.5,123.75,135.0,146.25,157.5,168.75,180.0,191.25,202.5,213.75,225.0,236.25,247.5,258.75,270.0,281.25,292.5,303.75,315.0,326.25,337.5,348.75][800,6,40,70,80]"""Portable native polar fields and raw-unit radar data; no Matplotlib dependency."""from pathlib import Pathimport numpy as npfrom laymesh import render_source HERE = Path(__file__).resolve().parenttheta = np.linspace(0, 360, 32, endpoint=False)radius = np.linspace(0, 3, 25)field = radius[:, None] * (1 + 0.22 * np.sin(np.deg2rad(theta))[None, :])# Keep a measured region absent; its neighboring cells must remain transparent.field[12:15, 12:15] = np.nanvalues = np.array([800, 6, 40, 70, 80])source = '# BEGIN DEMO\npage=canvas(size=(228 mm,132 mm),background="#ffffff")\ns=plot_style(font_family="DejaVu Sans",font_size=7 pt)\ncolors=color_scale(vmin=0,vmax=4,cmap="viridis")\np=plot(projection="polar",size=(105 mm,110 mm),plot_area=box(offset=(20 mm, 22 mm), size=(66 mm, 66 mm)),style=s,\n theta=axis(ticks=[0,90,180,270]),r=axis(range=(0,3),ticks=[1,2,3],tick_color="#ffffff",tick_font_size=6 pt))\np.contourf(z={{field}},theta={{theta}},r={{radius}},levels=[0,0.5,1,1.5,2,2.5,3,3.5],periodic=true,color_scale=colors)\na=page.add(p,offset=(3 mm,0 mm))\npage.add(text(content="(a) Missing polar samples",font_family="DejaVu Sans",font_size=9 pt),offset=(13 mm,5 mm))\nq=plot(projection="radar",size=(118 mm,110 mm),plot_area=box(offset=(25 mm, 22 mm), size=(66 mm, 66 mm)),style=s,\n categories=["Strength","Density","Cost","Temperature","Life"],ranges=[(0,1000),(0,10),(0,100),(-50,150),(0,100)],r=axis(ticks=[0.5,1],grid="major",tick_font_size=5 pt))\nq.area(values={{values}},fill="#264b69",opacity=0.2)\nq.line(values={{values}},color="#264b69",marker="diamond",marker_size=1.6 mm)\nb=page.add(q,offset=(109 mm,0 mm))\npage.add(text(content="(b) Raw units from Python",font_family="DejaVu Sans",font_size=9 pt),offset=(126 mm,5 mm))\npage.add(colorbar(scale=colors,orientation="horizontal",length=72 mm,thickness=3 mm,ticks=[0,1,2,3,4],label="Field",style=s),offset=(27 mm,107 mm))\n# END DEMO\n'if __name__ == '__main__': result = render_source(source, namespace=globals(), base_dir=HERE, output=HERE / 'polar-data.pdf', save_source='polar-data.lay', show_warnings=False) (HERE / 'polar-data.svg').write_text(result.preview_svg, encoding='utf-8') print(result.saved_source)Preview
Background
Dependencies
examples/plot/polar-data.assets/field-1f0c1f4eca6acc4d.jsonexamples/plot/polar-data.assets/radius-c2faeb8428cb0845.jsonexamples/plot/polar-data.assets/theta-a1a6d05666acec02.jsonexamples/plot/polar-data.assets/values-24bfdcd1baba759e.jsonexamples/plot/polar-data.lay
Reproduce
laymesh validate examples/plot/polar-data.laylaymesh render examples/plot/polar-data.lay -o figure.svglaymesh render examples/plot/polar-data.lay -o figure.pdflaymesh render examples/plot/polar-data.lay -o figure.png --dpi 300