前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python之PyChart画图方法

Python之PyChart画图方法

作者头像
py3study
发布2020-01-07 10:51:50
2.5K0
发布2020-01-07 10:51:50
举报
文章被收录于专栏:python3

其实,Python绘图的方式很多,也有很多开源不错的模块可以选择,比如常用于科学计算的MatplotlibCairoplot(需要×××)、ChacoPython Google ChartPyChapyOFC2PyChartPLplotReportLabVPython等等。

    这里,我们介绍下PyChart模块,其绘图还是比较方便的,而且绘出的图像也还不错。我们除了需要安装PyChart模块之外,还需要安装Ghostscript和GSview,为了方便大家,这里提供51cto的下载地址:

    PyChart:http://down.51cto.com/data/391104

    Ghostscript:http://down.51cto.com/data/391088

    GSview:http://down.51cto.com/data/391100

    OK,安装完之后,看一个简单的示例代码:

  1. http://flykite.blog.51cto.com/
  2. from pychart import *  
  3. class zap_y_coord(linear_coord.T):  
  4.     def get_canvas_pos(self, size, val, min, max):  
  5.         if val <= 70:  
  6. return linear_coord.T.get_canvas_pos(self, size, val, 0, 110)  
  7.         elif val <= 240:  
  8. return linear_coord.T.get_canvas_pos(self, size, 70, 0, 110)  
  9. else:  
  10. return linear_coord.T.get_canvas_pos(self, size, val - 170, 0, 110)  
  11.     def get_tics(self, min, max, interval):  
  12.         tics = linear_coord.T.get_tics(self, min, max, interval)  
  13. return [x for x in tics if x < 65 or x > 256]  
  14. # can = canvas.default_canvas()  
  15. can = canvas.init('flykite.png')  
  16. theme.scale_factor=3  
  17. theme.use_color=True
  18. theme.reinitialize()  
  19. data = [(10, 20, 30, 5), (20, 265, 33, 5),  
  20.         (30, 255, 30, 5), (40, 45, 51, 7), (50, 25, 27, 3)]  
  21. chart_object.set_defaults(area.T, size = (150, 120), y_range = (0, 280),  
  22.                           y_coord = zap_y_coord(),  
  23.                           x_coord = category_coord.T(data, 0))  
  24. chart_object.set_defaults(bar_plot.T, data = data)  
  25. bar_plot.fill_styles.reset();  
  26. plot1=bar_plot.T(label="foo", cluster=(0,3))  
  27. plot2=bar_plot.T(label="bar", hcol=2, cluster=(1,3))  
  28. plot3=bar_plot.T(label="baz", hcol=3, cluster=(2,3))  
  29. ar = area.T(loc=(250,0),  
  30.             x_axis=axis.X(label="X label", format="/a-30{}%d"),  
  31.             y_axis=axis.Y(label="Y label", tic_interval=10))  
  32. ar.add_plot(plot1, plot2, plot3)  
  33. ar.draw()  
  34. for x in (ar.x_pos(10) - 20, ar.x_pos(20)- 10, ar.x_pos(30) - 10):  
  35.     zap.zap_horizontally(can, line_style.default, fill_style.white,  
  36.                          x, ar.y_pos(65), x+16, ar.y_pos(65) + 4, 4, 4) 

    为了生成png图片,使用以下命令运行程序:

  1. python flykite.py --format=png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档