If you want to have it in Plotly, try this code:
import streamlit as st
import plotly.graph_objs as go
import pandas as pd
import numpy as np
dates = pd.date_range(start='2012-01-01', end='2024-01-01', freq='M')
actual_prices = np.abs(np.random.normal(loc=0.0, scale=10, size=len(dates))).cumsum() + 50
split_index = len(dates) // 2
trace1 = go.Scatter(x=dates[:split_index], y=actual_prices[:split_index], mode='lines', name='Price (First Half)', line=dict(color='blue'))
trace2 = go.Scatter(x=dates[split_index - 1:], y=actual_prices[split_index - 1:], mode='lines', name='Price (Second Half)', line=dict(color='red'))
data = [trace1, trace2]
layout = go.Layout(title='Price Trend Over Time with Color Transition',
xaxis=dict(title='Date'),
yaxis=dict(title='Price'),
hovermode='closest')
fig = go.Figure(data=data, layout=layout)
st.plotly_chart(fig)