Run Enviro code on your Breakout Garden

I have the Breakout Garden Mini, SPI and i2c. In that I have the 0.96 Color LCD a BME280 and RV3208 RTC. Same display used on the Enviro +, which also uses a BME280. So I thought why not modify the Enviro examples to run on my setup, so I did.
I took the all in one mini example and modified it to run on my Breakout garden setup. I took out the light sensor stuff and the CPU temp compensation code. For the moment the mode is set manually via the mode = line in the py file. mode = 0 gets you the temperature display. It shows the current temp at the top and graphs the readings over time. If I did my math correctly, taking a reading every 22.5 seconds will show 1 hours worth of readings across the width of the screen.
60 minutes times 60 seconds divided by the screen width of 160 pixels.
Anyway here is what I came up with.

#!/usr/bin/env python3

import time
import colorsys
import os
import sys
import ST7735

from bme280 import BME280

from subprocess import PIPE, Popen
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from fonts.ttf import RobotoMedium as UserFont
import logging

logging.basicConfig(
    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
    level=logging.INFO,
    datefmt='%Y-%m-%d %H:%M:%S')

logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors
Press Ctrl+C to exit!
""")

# BME280 temperature/pressure/humidity sensor
bme280 = BME280()

# Create ST7735 LCD display class
st7735 = ST7735.ST7735(
    port=0,
    cs=ST7735.BG_SPI_CS_FRONT,  # BG_SPI_CSB_BACK or BG_SPI_CS_FRONT
    dc=9,
    backlight=19, # 18 for back BG slot, 19 for front BG slot
    rotation=90,
    spi_speed_hz=10000000
)

# Initialize display
st7735.begin()

WIDTH = st7735.width
HEIGHT = st7735.height

# Set up canvas and font
img = Image.new('RGB', (WIDTH, HEIGHT), color=(0, 0, 0))
draw = ImageDraw.Draw(img)
path = os.path.dirname(os.path.realpath(__file__))
font_size = 20
font = ImageFont.truetype(UserFont, font_size)

message = ""

# The position of the top bar
top_pos = 25


# Displays data and text on the 0.96" LCD
def display_text(variable, data, unit):
    # Maintain length of list
    values[variable] = values[variable][1:] + [data]
    # Scale the values for the variable between 0 and 1
    vmin = min(values[variable])
    vmax = max(values[variable])
    colours = [(v - vmin + 1) / (vmax - vmin + 1) for v in values[variable]]
    # Format the variable name and value
    message = "{}: {:.1f} {}".format(variable[:4], data, unit)
    logging.info(message)
    draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
    for i in range(len(colours)):
        # Convert the values to colours from red to blue
        colour = (1.0 - colours[i]) * 0.6
        r, g, b = [int(x * 255.0) for x in colorsys.hsv_to_rgb(colour, 1.0, 1.0)]
        # Draw a 1-pixel wide rectangle of colour
        draw.rectangle((i, top_pos, i + 1, HEIGHT), (r, g, b))
        # Draw a line graph in black
        line_y = HEIGHT - (top_pos + (colours[i] * (HEIGHT - top_pos))) + top_pos
        draw.rectangle((i, line_y, i + 1, line_y + 1), (0, 0, 0))
    # Write the text at the top in black
    draw.text((0, 0), message, font=font, fill=(0, 0, 0))
    st7735.display(img)

last_page = 0
light = 1

# Create a values dict to store the data
variables = ["temperature",
             "humidity",
             "pressure"]

values = {}

for v in variables:
    values[v] = [1] * WIDTH

# The main loop

mode = 0

while True:
 
    if mode == 0:
        mode %= len(variables)
        last_page = time.time()
        # variable = "temperature"
        unit = "C"
        data = bme280.get_temperature()
        display_text(variables[mode], data, unit)
        time.sleep(22.5)
        
    if mode == 1:
        mode %= len(variables)
        last_page = time.time()
        # variable = "humidity"
        unit = "%"
        data = bme280.get_humidity()
        display_text(variables[mode], data, unit)
        time.sleep(22.5)

    if mode == 2:
        mode %= len(variables)
        last_page = time.time()
        # variable = "pressure"
        unit = "hPa"
        data = bme280.get_pressure()
        display_text(variables[mode], data, unit)
        time.sleep(22.5)

Tweaked a few more lines of code to get the colors the way I wanted, and changed the text display across the top.
The original code started out with a Red background for the graph part, which then turned orange > yellow> green as the pressure dropped. I swaped it around so now its Blue to start then goes yellow > orange > red as the pressure drops.

#!/usr/bin/env python3

import time
import colorsys
import os
import sys
import ST7735

from bme280 import BME280

from subprocess import PIPE, Popen
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from fonts.ttf import RobotoMedium as UserFont
import logging

logging.basicConfig(
    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
    level=logging.INFO,
    datefmt='%Y-%m-%d %H:%M:%S')

logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors
Press Ctrl+C to exit!
""")

# BME280 temperature/pressure/humidity sensor
bme280 = BME280()

# Create ST7735 LCD display class
st7735 = ST7735.ST7735(
    port=0,
    cs=ST7735.BG_SPI_CS_FRONT,  # BG_SPI_CSB_BACK or BG_SPI_CS_FRONT
    dc=9,
    backlight=19, # 18 for back BG slot, 19 for front BG slot
    rotation=90,
    spi_speed_hz=10000000
)

# Initialize display
st7735.begin()

WIDTH = st7735.width
HEIGHT = st7735.height

# Set up canvas and font
img = Image.new('RGB', (WIDTH, HEIGHT), color=(0, 0, 0))
draw = ImageDraw.Draw(img)
path = os.path.dirname(os.path.realpath(__file__))
font_size = 20
font = ImageFont.truetype(UserFont, font_size)

message = ""

# The position of the top bar
top_pos = 25


# Displays data and text on the 0.96" LCD
def display_text(variable, data, unit):
    # Maintain length of list
    values[variable] = values[variable][1:] + [data]
    # Scale the values for the variable between 0 and 1
    vmin = min(values[variable])
    vmax = max(values[variable])
    colours = [(v - vmin + 1) / (vmax - vmin + 1) for v in values[variable]]
    # Format the variable name and value
    message = "{}:{:.0f}{}".format(variable[:11],data,unit)
    logging.info(message)
    draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
    for i in range(len(colours)):
        # Convert the values to colours from red to blue
        colour = (1.0 - colours[i]) * 0.6
        b, g, r = [int(x * 255.0) for x in colorsys.hsv_to_rgb(colour, 1.0, 1.0)]
        # Draw a 1-pixel wide rectangle of colour
        draw.rectangle((i, top_pos, i + 1, HEIGHT), (r, g, b))
        # Draw a line graph in black
        line_y = HEIGHT - (top_pos + (colours[i] * (HEIGHT - top_pos))) + top_pos
        draw.rectangle((i, line_y, i + 1, line_y + 1), (0, 0, 0))
    # Write the text at the top in black
    draw.text((0, 0), message, font=font, fill=(0, 0, 0))
    st7735.display(img)

last_page = 0
light = 1

# Create a values dict to store the data
variables = ["Temperature",
             "Humidity",
             "Pressure"]

values = {}

for v in variables:
    values[v] = [1] * WIDTH

# The main loop

mode = 2

while True:
 
    if mode == 0:
        mode %= len(variables)
        last_page = time.time()
        # variable = "Temperature"
        unit = "C"
        data = bme280.get_temperature()
        display_text(variables[mode], data, unit)
        time.sleep(22.5)
        #mode += 1

    if mode == 1:
        mode %= len(variables)
        last_page = time.time()
        # variable = "Humidity"
        unit = "%"
        data = bme280.get_humidity()
        display_text(variables[mode], data, unit)
        time.sleep(22.5)
        #mode += 1

    if mode == 2:
        mode %= len(variables)
        last_page = time.time()
        # variable = "Pressure"
        unit = "mb"
        data = bme280.get_pressure()
        display_text(variables[mode], data, unit)
        time.sleep(22.5)
        #mode = 0

It looks like g, r, b is what I was after, not b, g, r.
That gets me a green background that turns yellow then red as the pressure drops.
It will be all blue on startup and then backfill with green etc as data is plotted.
Over time with the other code the blue just turned white?

g, r, b = [int(x * 255.0) for x in colorsys.hsv_to_rgb(colour, 1.0, 1.0)]