python工程1(数据可视化)

首先,我们要用到matplotlib库,它是一个数学绘图库,我们将使用它来制作简单的图表,在安装和测试结束之后,我们进入正式的学习中:

plot函数

plot函数与matlab中的plot函数基本一致,是一个二维曲线绘图函数
plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y), imag(Y));其它使用情况下,忽略坐标数据中的虚部。
plot(X1,Y1,…)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。

生成函数图像时,我们可以在plot函数中添加变量对图形的各种参数属性进行修改,使其更加易读,例如:
linewidth
fontsize
labelsize
等等参数,这些参数不光可以在plot函数中使用,同样适用于title\xlabel\ylable等等函数中,是通用的图形参数
参数linewidth决定了plot()绘制的线条的粗细。函数title()给图标指定标题,fontsize指定图标文字大小,tick_params()设置刻度的样式,其中指定的实参将影响x轴和y轴上的刻度(axis=‘both’)

设定完毕后,调用plot.show()打开matplotlib查看器,并显示绘制的图形

!!当你向plot()提供一系列数字时,它假设第一个数据点对应的x坐标值为0,但我们的第一个点对应的x值为1,为改变这种默认行为,我们可以给plot同时提供输入值和输出值

import matplotlib.pyplot as plt
input_value = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]
plt.plot(input_value, squares, linewidth=5)

#设置图标标题,并给坐标轴加上标签
plt.title('Square Numbers', fontsize=24)
plt.xlabel('Value', fontsize=14)
plt.ylabel("Square of Value", fontsize=14)

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

之所以会造成这种错误,是因为plot函数实际上是用你给出的数值“猜想”出一条函数曲线和所取的值,因为你压根就没提供任何函数和第二组数值,但是如果提供了第二组输出数值,那么曲线就会精准许多

使用scatter()绘制散点图并设置其样式

绘制单个点,可使用函数scatter(),并向它传递一对x和y坐标,它将在指定位置绘制一个点

import matplotlib.pyplot as plt

plt.scatter(2, 4, s=200)

#设置图标标题并给坐标轴加上标签
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, color='green')
plt.show()

使用scatter()绘制一系列点:

要绘制一系列的点,可向scatter()传递两个分别包含x值和y值的列表:

import matplotlib.pyplot as plt

x_value = [1, 2, 3, 4, 5]
y_value = [1, 4, 9, 16, 25]
plt.scatter(x_value, y_value, s=100)

#设置图标标题并给坐标轴加上标签
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, color='green')
plt.show()

这个传递两组值的原理和上面说的plot基本一致

自动计算数据
数据集较大时,我们将点设置得很小,并使用axis()函数指定了每个坐标轴的取值范围,函数axis()要求提供四个值,x和y的最大值和最小值:

import matplotlib.pyplot as plt

x_value = list(range(1,1001))
y_value = [x**2 for x in x_value]

plt.scatter(x_value, y_value, s=4)

#设置图标标题并给坐标轴加上标签
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, color='green')

#设置每个坐标轴的取值范围
plt.axis([0, 1100, 0, 1100000])
plt.show()

在这里插入图片描述
matplotlib允许你给散点图中的各个点指定颜色,默认为蓝色点和黑色轮廓,如果散点图的点非常多时,黑色轮廓可能会粘连在一起,要删除数据点的轮廓,可在调用scatter()时传递实参edgecolor=‘none’,自定义数据点的颜色时,可向scatter()传递参数c,比如c=‘red’

使用颜色映射:
颜色映射(colormap)是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律,例如,你可能用较浅的颜色来显示较小的值,用较深的颜色来表示较大的数值

plt.scatter(x_value, y_value, s=40, c=y_value, cmap=plt.cm.Blues, edgecolors='none')

我们将参数c设置成一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射,这些代码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色

自动保存图表:
要让程序自动将图标保存到文件中,可将对plt.show()的调用替换为对plt.savefig()的调用:

plt.savefig('squares_plot.png', bbox_inches='tight')

第一个实参是指定要以什么样的文件名保存图表,这个文件将存储到scatter_squares.py所在的目录中,第二个实参指定将图表多余的空白区域裁剪掉,如果要保留空白,这个实参可以省略

随机漫步

1.创建RandomWalk()类,它随机地选择前进方向,这个类需要三个属性,其中一个存储随机漫步次数的变量,其他两个是列表,分别存储随机漫步经过的每个点的x和y坐标
RandomWalk类只包含两个方法:init()和fill_walk(),其中后者计算随机漫步经过的所有点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值