ecmwf / metview-python

Python interface to Metview meteorological workstation and batch system
https://metview.readthedocs.io/en/latest/
Apache License 2.0
127 stars 32 forks source link

Colouring text background and labels #30

Open gkafk opened 3 years ago

gkafk commented 3 years ago

Hi,

Is there any way of colouring the background of text region? image

A text_box_blanking but with colour or transparency?

image

Also, is there any way of making contour lines cut around label? image

like that?

image

thanks George

iainrussell commented 3 years ago

Hi George,

Good questions! To go beyond the simple white background that you get with text_box_blanking='on' you need to use the Annotation View, described a bit here: https://confluence.ecmwf.int/display/METV/Layout+in+Metview

Here is some Python code that uses it the way you want:

text = mv.mtext(
    text_lines          = ["Hello world", "How are you?"],
    text_colour         = "black",
    text_font_size      = 0.5,
    text_mode           = "positional",
    text_justification  = "left"
    )

gview = mv.geoview()

geo_page = mv.plot_page(view = gview)

annotation_view = mv.annotationview(
    #subpage_background_colour = "peach"
    subpage_background_colour = "RGBA(1, 0.5, 0.5, 0.5)"
    )

text_page = mv.plot_page(
    top    = 40, # % of main page from top-left
    bottom = 50,
    left   = 30,
    right  = 55,
    view   = annotation_view
    )

dw = mv.plot_superpage(pages = [geo_page,text_page])

mv.plot(dw[0], data, dw[1], text)

image

Unfortunately we do not support the gaps in isolines required for your second question, but blanking of labels is on, as long as you don't turn off contour_label_blanking. image

I hope this helps a little!

Iain

gkafk commented 3 years ago

Thanks Iain.

I will try it.