chart.py 980 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import matplotlib.pyplot as plt
  2. from matplotlib.font_manager import FontProperties, fontManager
  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. if font in fontManager.ttflist:
  17. chinese_font = FontProperties(font)
  18. if chinese_font.get_name() == font:
  19. return chinese_font
  20. return FontProperties()
  21. # use a business theme
  22. plt.style.use("seaborn-v0_8-darkgrid")
  23. plt.rcParams["axes.unicode_minus"] = False
  24. font_properties = set_chinese_font()
  25. plt.rcParams["font.family"] = font_properties.get_name()
  26. class ChartProvider(BuiltinToolProviderController):
  27. def _validate_credentials(self, credentials: dict) -> None:
  28. pass