code: def _altair_chart_num_(self, chart_type, xfield, yfield, opts, style2, encode):
          
          style = {**style2}
          text_color = "grey"
          if "text_color" in style:
              text_color = style["text_color"]
              del style["text_color"]
              if "text_color" in self.chart_style:
                  del self.chart_style["text_color"]
          if chart_type == "line":
              c = Chart(self.df).mark_line(**style).encode(x=xfield, \
                                                  y=yfield, **encode).properties(**opts)
          elif chart_type == "bar":
              c = Chart(self.df).mark_bar(**style).encode(x=xfield, \
                                                  y=yfield, **encode).properties(**opts)
          elif chart_type == "point":
              c = Chart(self.df).mark_point(**style).encode(x=xfield, \
                                                  y=yfield, **encode).properties(**opts)
          encoder = encode
          if "text" not in encoder:
              encoder["text"] = yfield
          if "align" not in style:
              style["align"] = "center"
          if "dy" not in style:
              style["dy"] = -5
          if "dx" not in style and chart_type != "bar":
              style["dx"] = 8
          if "size" in style:
              del style["size"]
          style["color"] = text_color
          df2 = self.df.replace({yfield.split(":")[0]: {0: self.nan}})
          num = Chart(df2).mark_text(**style).encode(x=xfield, \
                                              y=yfield, **encoder).properties(**opts)
          return c + num
docs: Get a chart + text number chart