《Python编程从入门到实践 第二版》第十五章练习

15-1 立方 数的三次方称为立方 。请绘制一个图形,显示前5个整数的立方值。再绘制一个图形,显示前5000个整数的立方值。

import matplotlib.pyplot as plt  

x_values = range(1,5001)
y_values = [x**3 for x in x_values]

plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.scatter(x_values,y_values,s=50)


# 设置图表标题并给坐标轴加上标签
ax.set_title("立方数",fontsize=24)
ax.set_xlabel("值",fontsize=14)
ax.set_ylabel("值的立方",fontsize=14)

#设置刻度标记的大小
ax.tick_params(axis='both',which='major',labelsize=14)


# 结果显示
plt.show()

15-2 彩色立方 给前面绘制的立方图指定颜色映射。

import matplotlib.pyplot as plt  

x_values = range(1,5001)
y_values = [x**3 for x in x_values]

plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Greens,s=50)


# 设置图表标题并给坐标轴加上标签
ax.set_title("立方数",fontsize=24)
ax.set_xlabel("值",fontsize=14)
ax.set_ylabel("值的立方",fontsize=14)

#设置刻度标记的大小
ax.tick_params(axis='both',which='major',labelsize=14)


# 结果显示
plt.show()

15-3 分子运动 修改rw_visual.py,将其中的ax.scatter() 替换为ax.plot() 。为模拟花粉在水滴表面的运动路径,向plt.plot() 传递rw.x_values 和rw.y_values,并指定实参linewidth 。请使用5000个点而不是50 000个点。

import matplotlib.pyplot as plt 

from random_walk import RandomWalk

while True:
	# 创建一个RandomWalk实例
	rw = RandomWalk(5000)
	rw.fill_walk()

	# 将所有的点都绘制出来
	plt.style.use('classic')
	fig,ax = plt.subplots()
	plt.plot(rw.x_values,rw.y_values,linewidth=5)

	plt.show()

	keep_running = input("Make another walk?(y/n): ")
	if keep_running == 'n':
		break

15-4 改进的随机漫步 在类RandomWalk 中,x_step和y_step 是根据相同的条件生成的:从列表[1, -1] 中随机选择方向,并从列表[0, 1, 2, 3, 4] 中随机选择距离。请修改这些列表中的值,看看对随机漫步路径有何影响。尝试使用更长的距离选择列表(如0~8),或者将-1从 或 方向列表中删除。
(以下代码不确定对不对)

from random import choice

class 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.random([1,-1])

			x_distance = choice.random([0,1,2,3,4])
			x_step = x_direction *
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值