import matplotlib.pyplot as pltinput_values = [1, 2, 3, 4, 5]squares = [1, 4, 9, 16, 25]plt.plot(input_values, squares, linewidth=5) # 决定plot()绘制的线条的粗细plt.title(‘Square Numbers‘, fontsize=24) # 给图标设置标题plt.xlabel(‘Value‘, fontsize=14) # 为x轴设置标题plt.ylabel(‘Square of Value‘, fontsize=14) # 为y轴设置标题plt.tick_params(axis=‘both‘, labelsize=10) # 设置刻度的样式,axis=x/yplt.show() # 打开matplotlib查看器,并显示绘制的图形 |
import matplotlib.pyplot as pltx_values = [1, 2, 3, 4, 5]# y_values = [1, 4, 9, 16, 25]y_values = [x**2 for x in x_values]plt.scatter(x_values, y_values, c=‘red‘, edgecolors=‘none‘, s=40) # 设置点的颜色,删除数据点的轮廓,绘制图形时使用的点的尺寸plt.title(‘Square Number‘, fontsize=24)plt.xlabel(‘Value‘, fontsize=14)plt.ylabel(‘Square of Value‘, fontsize=14)plt.tick_params(axis="both", which=‘major‘, labelsize=10)plt.axis([0, 50, 0, 100]) # 设置每个坐标轴的取值范围plt.show() |
import matplotlib.pyplot as pltx_values = [1, 2, 3, 4, 5]y_values = [x**2 for x in x_values]、# 颜色映射,从起始颜色渐变到结束颜色。将参数c设置成一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolors=‘none‘, s=40) plt.title(‘Square Number‘, fontsize=24)plt.xlabel(‘Value‘, fontsize=14)plt.ylabel(‘Square of Value‘, fontsize=14)plt.tick_params(axis="both", which=‘major‘, labelsize=10)plt.axis([0, 50, 0, 100])plt.show()# plt.savefig(‘squares_plot.png‘, bbox_inches=‘tight‘)# 第一个实参指定要以什么样的文件名保存图标,将存储在scatter_squares.py所在目录中# 第二个实参指定图标多余的空白区域裁剪掉。如果要保留周围空白区域,可省略这个实参 |
1、RandomWalk的类,它随机选择前进方向。这个类需要三个属性,一个是存储随机漫步次数的变量,其他两个是列表,分别存储随机漫步经过的每个点的x和y的坐标
from random import choiceclass RandomWalk(): """一个生成随机漫步数据的类""" def __init__(self, num_points=5000): """初始化随机漫步的属性""" self.num_points = num_points # 所有随机漫步都始于(0, 0) self.x_values = [0] self.y_values = [0] def fill_walk(self): """计算随机漫步包含的所有点""" # 不断漫步,直到列表达到所指定的长度 while len(self.x_values) < self.num_points: # 决定前进方向以及沿这个方向前进的距离 x_direction = choice([1, -1]) x_distance = choice([0, 1, 2, 3, 4]) # 随机选择一个0~4之间的整数 x_step = x_direction * x_distance y_direction = choice([1, -1]) y_distance = choice([0, 1, 2, 3, 4]) y_step = y_direction * y_distance # 拒绝原地踏步 if x_step == 0 and y_step == 0: continue # 计算下一个点的x和y值 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) |
import matplotlib.pyplot as pltfrom test_matplotlib.random_walk import RandomWalk# 只要程序处于活动状态,就不断地模拟随机漫步while True: # 创建一个RandomWalk实例,并将其包含的点都绘制出来 rw = RandomWalk(50000) rw.fill_walk() # 设置绘图窗口的尺寸。dpi向figure()传递该分辨率 plt.figure(dpi=128, figsize=(10, 6)) point_number = list(range(rw.num_points)) plt.scatter(rw.x_values, rw.y_values, c=point_number, cmap=plt.cm.Blues, edgecolors=‘none‘, s=1) plt.title(‘包含n个点的随机漫步‘, fontsize=24) # 突出起点和终点 plt.scatter(0, 0, c=‘green‘, edgecolors=‘none‘, s=100) plt.scatter(rw.x_values[-1], rw.y_values[-1], c=‘red‘, edgecolors=‘none‘, s=100) # 隐藏坐标轴,使用plt.axes()来将每条坐标轴的可见性设置为False plt.axes().get_xaxis().set_visible(False) plt.axes().get_yaxis().set_visible(False) plt.show() keep_running = input("Make another walk?(y/n):") if keep_running == ‘n‘: break |
from random import randintclass Die: """表示一个骰子的类""" def __init__(self, num_sides=6): """骰子默认为6面""" self.num_sides = num_sides def roll(self): """返回一个位于1和骰子面数之间的随机值""" return randint(1, self.num_sides) |
import pygalfrom test_matplotlib.die import Die# 创建一个D6和D10骰子die_1 = Die()die_2 = Die(10)# 掷几次骰子,并将结果存储在一个列表中results = []for roll_num in range(50000): result = die_1.roll() + die_2.roll() results.append(result)# 分析结果frequencies = []max_result = die_1.num_sides + die_2.num_sides # 可能出现的最大点数12为俩个骰子的最大可能点数之和,存储到max_resultfor value in range(2, max_result+1): frequency = results.count(value) frequencies.append(frequency)# 对结果进行可视化hist = pygal.Bar()hist.title = ‘Results of rolling a D6 and a D10 50,000 times‘hist.x_labels = [‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘10‘, ‘11‘, ‘12‘, ‘13‘, ‘14‘, ‘15‘, ‘16‘]hist.x_title = ‘Result‘hist._y_title = ‘Frequency of Result‘# 使用add()将一系列值添加到图表中(向它传递要给添加的值指定的标签,还有一个列表,其中包含将出现在图标中的值。# 将这个图表渲染成一个svg文件)hist.add(‘D6 + D10‘, frequencies)hist.render_to_file(‘die_visual.svg‘) |
原文:https://www.cnblogs.com/CSgarcia/p/13267956.html