def cdf_charts(good_prob, bad_prob): """Plot CDF chart.""" source1 = pd.DataFrame( { "Good loans": np.arange(len(good_prob)) / len(good_prob), }, index=good_prob) c1 = altair.generate_chart("line", source1) source2 = pd.DataFrame( { "Bad loans": np.arange(len(bad_prob)) / len(bad_prob), }, index=bad_prob) c2 = altair.generate_chart("line", source2) return c1 + c2
def test_date_column_utc_scale(self): """Test that columns with date values have UTC time scale""" df = pd.DataFrame( {"index": [date(2019, 8, 9), date(2019, 8, 10)], "numbers": [1, 10]} ).set_index("index") chart = altair.generate_chart("line", df) st.altair_chart(chart) c = self.get_delta_from_queue().new_element.vega_lite_chart spec_dict = json.loads(c.spec) # The x axis should have scale="utc", because it uses date values. x_scale = _deep_get(spec_dict, "encoding", "x", "scale", "type") self.assertEqual(x_scale, "utc") # The y axis should _not_ have scale="utc", because it doesn't # use date values. y_scale = _deep_get(spec_dict, "encoding", "y", "scale", "type") self.assertNotEqual(y_scale, "utc")
def page_charts(today_date=date.today() - timedelta(days=1)): st.subheader("Shiller charts") df0 = load_ie_data() c1 = altair.generate_chart("line", df0[["Real_Price", "10xReal_Earnings"]]).properties( title="Index Plot", height=200, width=260, ) c2 = altair.generate_chart("line", df0[["CAPE", "10xLong_IR"]]).properties( title="PE (CAPE) Plot", height=200, width=260, ) st.altair_chart(alt.concat(c1, c2, columns=2), use_container_width=True) st.subheader("Stock charts") start_date = get_start_date(today_date, options=("3Y", "2Y", "1Y")) dates = pd.date_range(today_date - timedelta(days=365 * 2), today_date) # MSCI symbols = ["URTH", "EEM", "SPY", "ES3.SI"] colnames = ["MSCI World", "MSCI EM", "S&P500", "ES3"] df1 = load_data(dates, symbols, "SPY") df1.columns = colnames rebased_df1 = rebase(df1[df1.index >= start_date]) chart1 = altair.generate_chart("line", rebased_df1).properties( title="MSCI", height=200, width=260, ) # VIX symbols = ["^VIX"] colnames = ["VIX"] df2 = load_data(dates, symbols)[symbols] df2.columns = colnames chart2 = altair.generate_chart("line", df2[df2.index >= start_date]).properties( title="VIX", height=200, width=260, ) st.altair_chart(alt.concat(chart1, chart2, columns=2), use_container_width=True) # etfs symbols = ["IWDA", "EIMI"] colnames = ["World", "EM"] df3a = load_data(dates, symbols) df3a.columns = colnames rebased_df3a = rebase(df3a[df3a.index >= start_date]) chart3a = altair.generate_chart("line", rebased_df3a).properties( title="ETF", height=200, width=260, ) symbols = ["O87.SI", "ES3.SI", "CLR.SI"] colnames = ["GLD", "ES3", "Lion-Phillip"] df3b = load_data(dates, symbols) df3b.columns = colnames rebased_df3b = rebase(df3b[df3b.index >= start_date]) chart3b = altair.generate_chart("line", rebased_df3b).properties( title="ETF SGX", height=200, width=260, ) st.altair_chart(alt.concat(chart3a, chart3b, columns=2), use_container_width=True) # industrial symbols = [ "ES3.SI", "O5RU.SI", "A17U.SI", "J91U.SI", "BUOU.SI", "ME8U.SI", "M44U.SI" ] colnames = ["ES3", "AA", "Ascendas", "ESR", "FLCT", "MIT", "MLT"] df4 = load_data(dates, symbols) df4.columns = colnames rebased_df4 = rebase(df4[df4.index >= start_date]) chart4a = altair.generate_chart( "line", rebased_df4[["ES3", "Ascendas", "FLCT", "MIT", "MLT"]], ).properties( title="Industrial 1", height=200, width=260, ) chart4b = altair.generate_chart( "line", rebased_df4[["ES3", "AA", "ESR"]], ).properties( title="Industrial 2", height=200, width=260, ) st.altair_chart(alt.concat(chart4a, chart4b, columns=2), use_container_width=True) # retail symbols = ["ES3.SI", "C38U.SI", "J69U.SI", "N2IU.SI"] colnames = ["ES3", "CICT", "FCT", "MCT"] df5 = load_data(dates, symbols) df5.columns = colnames rebased_df5 = rebase(df5[df5.index >= start_date]) chart5 = altair.generate_chart("line", rebased_df5).properties( title="Retail & Commercial", height=200, width=250, ) # banks symbols = ["ES3.SI", "D05.SI", "O39.SI", "U11.SI"] colnames = ["ES3", "DBS", "OCBC", "UOB"] df6 = load_data(dates, symbols) df6.columns = colnames rebased_df6 = rebase(df6[df6.index >= start_date]) chart6 = altair.generate_chart("line", rebased_df6).properties( title="Banks", height=200, width=250, ) st.altair_chart(alt.concat(chart5, chart6, columns=2), use_container_width=True)