1、修改标签文字和线条粗细
#设置图表标题,并给坐标轴加上标签 plt.title("Random Walk", fontsize=24) plt.xlabel("x_values", fontsize=15) plt.ylabel("y_values", fontsize=15) #设置刻度标记的大小 plt.tick_params(axis='both', labelsize=14)
2、绘制折线图以及散点图
折线图
输入两个列表分别作为折线图的横坐标和纵坐标,c为RGB颜色表示法
plt.plot(rw.x_values, rw.y_values, c=(0, 0, 0.8), linewidth=1)
散点图
两个列表、c同上折线图的表示
区别在于散点图可以采用颜色映射,c作为一个列表输入,cmap指定映射的颜色,进行渐变颜色的映射
edgecolors指定点的边缘是否有颜色,s为点的大小
plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Reds, edgecolors='none', s=10)
也可以直接描绘两个点,如起点和终点
plt.scatter(0, 0, c='green', s=150) plt.scatter(rw.x_values[-1], rw.y_values[-1], c='blue', s=150)
3、隐藏坐标轴
plt.axes().get_xaxis().set_visible(False) plt.axes().get_yaxis().set_visible(False)
4、保存图片
savefig()必须在show()之前,否则得到的是空白图片
plt.savefig('random_walk.png', bbbox_inches='tight')
5、调整尺寸
plt.figure(dpi=128, figsize=(10, 6))
6、最后附上代码
random_walk.py
from random import choice class RandomWalk: def __init__(self, num_points=500): self.num_points = num_points self.x_values = [0] self.y_values = [0] def get_step(self): direction = choice([1, -1]) distance = choice([0, 1, 2, 3, 4, 5]) step = direction * distance return step def fill_walk(self): while len(self.x_values) < self.num_points: x_step = self.get_step() y_step = self.get_step() if x_step == 0 and y_step == 0: continue next_x = self.x_values[-1] + x_step next_y = self.y_values[-1] + y_step self.x_values.append(next_x) self.y_values.append(next_y)
rw_visual.py
# coding=utf-8 import matplotlib.pyplot as plt from random_walk import RandomWalk rw = RandomWalk(5000) rw.fill_walk() point_numbers = list(range(rw.num_points)) #plt.figure(dpi=128, figsize=(10, 6)) plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Reds, edgecolors='none', s=10) #plt.plot(rw.x_values, rw.y_values, c=(0, 0, 0.8), linewidth=1) #设置图表标题,并给坐标轴加上标签 plt.title("Random Walk", fontsize=24) plt.xlabel("x_values", fontsize=15) plt.ylabel("y_values", fontsize=15) #设置刻度标记的大小 plt.tick_params(axis='both', labelsize=14) plt.scatter(0, 0, c='green', s=150) plt.scatter(rw.x_values[-1], rw.y_values[-1], c='blue', s=150) #plt.axes().get_xaxis().set_visible(False) #plt.axes().get_yaxis().set_visible(False) plt.savefig('random_walk.png', bbbox_inches='tight') plt.show()