神情气爽,我用Python。。。
终于可以开始Part 2 项目部分了,先从第十五章生成数据部分开始吧。
第十五章:生成数据
15.2 绘制简单的折线图
参数linewidth决定plot()绘制的线条的粗细;函数title()给图标制定标题;参数fontsize指定了图表中文字的大小;函数xlabel()和ylabel()为横轴和纵轴设置标题;函数tick_params()设置刻度的样式,其中指定的实参将影响x轴和y轴上的刻度(axes=‘both’),并将刻度标记的字号设置为14(labelsize=14)。
import matplotlib.pyplot as plt
input_values = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]
plt.plot(input_values, squares, linewidth=5)
# Set chart title and label axes.
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
# Set size of tick labels.
plt.tick_params(axis='both', labelsize=14)
plt.show()
15.2.3 使用scatter()绘制散点图并设置其样式
函数scatter()用于绘制单个点,实参s设置绘制图形时使用的点的尺寸。
import matplotlib.pyplot as plt
plt.scatter(2,4,s=200)
plt.title('Square Numbers',fontsize=14)
plt.xlabel('Value',fontsize=14)
plt.ylabel('Square of Value',fontsize=14)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.show()
15.2.4 使用scatter绘制一系列的点
import matplotlib.pyplot as plt
x_values=[1,2,3,4,5]
y_values=[1,4,9,16,25]
plt.scatter(x_values,y_values,s=100)
plt.title('Square Numbers',fontsize=14)
plt.xlabel('Value',fontsize=14)
plt.ylabel('Square of Value',fontsize=14)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.show()
15.2.5 自动计算数据
函数axis()指定每个坐标轴的取值范围,要求提供四个值:x和y坐标轴的最小值和最大值。
要删除数据点的轮廓,可以在调用scatter()时传递实参edgecolor=‘none’。
要自定义数据点的颜色,可以向scatter()传递参数c,并将其设置为要使用的颜色的名称。参数c为一个元组,其中包含三个0-1之间的小数值,分别表示红色、绿色和蓝色分量。值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅。
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor='none', s=40)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14)
plt.axis([0, 1100, 0, 1100000])
plt.show()
15.2.8 使用颜色映射
颜色映射是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律。
模块pyplot内置了一组颜色映射。
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, c=y_values,cmap=plt.cm.Greens, edgecolor='none', s=40)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14)
plt.axis([0, 1100, 0, 1100000])
plt.show()
15.2.9 自动保存图表
要让程序自动将图表保存到文件中,可以将plt.show()的调用替换为plt.savefig()的调用。
plt.savefig('squares_plot.png',bbox_inches='tight')
15.3 随机漫步
随机漫步即每次行走都是完全随机的,没有明确的方向,结果由一系列随机决策决定的。
import matplotlib.pyplot as plt
from random_walk import RandomWalk
while True:
rw = RandomWalk(50000)
rw.fill_walk()
plt.figure(dpi=128, figsize=(10, 6))
point_numbers = list(range(rw.num_points))
plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues,
edgecolor='none', s=1)
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().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
Make another walk? (y/n):
一路荆棘呀
惊鸿一般短暂
如夏花一样绚烂
这是一个不能停留太久的世界
喜欢梅子酒,喜欢进步的你!