chart.py 915 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import matplotlib.pyplot as plt
  2. from matplotlib.font_manager import FontProperties
  3. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  4. def set_chinese_font():
  5. font_list = [
  6. "PingFang SC",
  7. "SimHei",
  8. "Microsoft YaHei",
  9. "STSong",
  10. "SimSun",
  11. "Arial Unicode MS",
  12. "Noto Sans CJK SC",
  13. "Noto Sans CJK JP",
  14. ]
  15. for font in font_list:
  16. chinese_font = FontProperties(font)
  17. if chinese_font.get_name() == font:
  18. return chinese_font
  19. return FontProperties()
  20. # use a business theme
  21. plt.style.use("seaborn-v0_8-darkgrid")
  22. plt.rcParams["axes.unicode_minus"] = False
  23. font_properties = set_chinese_font()
  24. plt.rcParams["font.family"] = font_properties.get_name()
  25. class ChartProvider(BuiltinToolProviderController):
  26. def _validate_credentials(self, credentials: dict) -> None:
  27. pass