《python编程从入门到实践》中使用pygal完全实现随机散步的案例
想必大家在自学python时,都会选择上述所说的书,并且都会做练习题作为练手,加强学习。
但是,划重点!!!部分练习题竟然没有答案!!
比如15章的最后的练习题,需要我们尝试使用Pygal通过可视化来模拟随机漫步的情况。我搜索了网上关于pygal库的资料,少的可怜,基本不能让我完全复刻matplotlib库实现的随机漫步。因此,我不得不去pygal库的官方文档学习,然后就有了这篇文章。官方文档:link
加载库
import pygal
from pygal.style import Style
from random_walk import RandomWalk
实例化随机漫步
rw = RandomWalk(1000)
rw.fill_walk()
接下来,就是可视化了
图例样式修改
custom_style = Style(colors=('red', 'blue', 'orange'))
scatter = pygal.XY(stroke=False, spacing=0, style=custom_style)
标题
scatter.title = 'RandomWalk'
突出起点和终点,点的颜色和大小修改,过程点渐变映射
scatter.add('起点', [{'value':(rw.x_values[0], rw.y_values[0]), 'color': 'red'}], dots_size=5)
scatter.add('过程', [{'value':(rw.x_values[i], rw.y_values[i]), 'color': 'rgba(0, 0, 255, {})'.format((1/rw.num_points)*i)} for i in range(1, rw.num_points-1)], dots_size=2)
scatter.add('终点', [{'value':(rw.x_values[-1], rw.y_values[-1]), 'color':'orange', 'target': '_top'}], dots_size=5)
不显示x 和y的虚线
scatter.show_y_guides = False
scatter.show_x_guides = False
不显示 x轴和y轴
scatter.show_x_labels = False
scatter.show_y_labels = False
图片保存
scatter.render_to_file('RandomWalk.svg')