博客
关于我
python可视化编程--matplotlib(二散点图)
阅读量:635 次
发布时间:2019-03-14

本文共 3479 字,大约阅读时间需要 11 分钟。

以下是优化后的文章内容:

Matplotlib绘图实用技巧与示例

Matplotlib是Python中最常用的数据可视化库,它功能强大且灵活,适用于多种数据可视化需求。本文将从基础到高级技巧,带你逐步学习Matplotlib的使用方法。

1. 画单个点

为了绘制单个点,我们可以使用 plt.scatter() 方法。以下是一个简单的例子:

import matplotlib.pyplot as pltplt.scatter(2, 4, marker='o', c='b')  # c代表颜色参数plt.title('散点图', fontsize=14)plt.xlabel('x轴', fontsize=14)plt.ylabel('y轴', fontsize=14)plt.ticklabel_format(axis='both')plt.show()
图片说明:

根据上述代码,生成的散点图将展示一个标记为圆点(o)的点,位置为(2,4),点的颜色为蓝色。

2. 自动计算

当数据量较多或需要生成多个点时,可以通过编程方式自动生成数据点。以下是一个自动计算的示例:

import numpy as npimport matplotlib.pyplot as pltx = np.arange(1, 5)  # 生成x值:1, 2, 3, 4y = [x**2 for x in x]  # 根据x计算y值,例如:1, 4, 9, 16plt.scatter(x, y, c=(0, 0.5, 0.3))  # c为颜色参数,格式为RGBplt.title('自动计算的散点图', fontsize=14)plt.xlabel('x轴', fontsize=14)plt.ylabel('y轴', fontsize=14)plt.ticklabel_format(axis='both')plt.show()
图片说明:

该图表将自动绘制x值从1到4的四个点,y值分别为1, 4, 9, 16,点的颜色为RGB颜色空间中的(0,0.5,0.3)。

3. 颜色映射

通过颜色映射,我们可以将数据点根据某种规则自动分配颜色。例如,可以让颜色随y值变化:

import matplotlib.pyplot as pltx = np.arange(1, 5)y = [x**2 for x in x]plt.scatter(x, y, c=y, cmap=plt.cm.gist_rainbow, s=20)  # cmap为color map,gist_rainbow是预定义的颜色映射plt.title('颜色映射散点图', fontsize=14)plt.xlabel('x轴', fontsize=14)plt.ylabel('y轴', fontsize=14)plt.show()
图片说明:

图表中每个点的颜色根据y值随机分配,使用gist_rainbow颜色映射。

4. 自动保存图表

为了确保绘制出来的图表不会被关闭,可以使用 plt.savefig() 方法保存图表:

import numpy as npimport matplotlib.pyplot as pltx = np.arange(1, 500)y = [x**2 for x in x]plt.scatter(x, y, c=y, cmap=plt.cm.hot, s=10)plt.title('自动保存的散点图', fontsize=14)plt.xlabel('x轴', fontsize=14)plt.ylabel('y轴', fontsize=14)plt.ticklabel_format(axis='both')plt.savefig('aaa.png')  # 将图表存为aaa.png文件
图片说明:

例如,运行上述代码后,将在当前目录下生成一个名为aaa.png的图表文件。

5. 随机漫步

我们可以使用随机漫步模拟随机分布的数据点。以下是随机漫步的实现:

# randomMy.py文件from random import choiceclass RandomWalk:    def __init__(self, num_points=50):        self.num_points = num_points        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])            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                            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)

使用示例

hello.py中:

from randomMy import RandomWalkrwn = RandomWalk()rwn.fill_walk()plt.scatter(rwn.x_values, rwn.y_values, c=range(len(rwn.x_values)), cmap= plt.cm.hot, s=15)plt.scatter(0,0, c='green', edgecolors='none', s=100)  # 绘制原点plt.scatter(rwn.x_values[-1], rwn.y_values[-1], c='red', edgecolors='none', s=100)  # 绘制终点plt.show()keep_running = input("继续吗?(y/n):")
图片说明:

上述代码将绘制一个随机漫步生成的散点图,并使用c参数将每个点的颜色根据它们在序列中的位置分配。同时,还绘制了原点和终点,使用不同的颜色表示。

6. 动态更新绘图

如果希望在代码运行过程中动态展示随机漫步生成的点,可以使用以下方式:

from randomMy import RandomWalkimport matplotlib.pyplot as pltplt.figure(figsize=(10, 6))  # 调整图表大小while True:    rwn = RandomWalk()    rwn.fill_walk()        for point in rwn.x_values:        plt.scatter(rwn.x_values, rwn.y_values, c=range(len(rwn.x_values)), cmap= plt.cm.hot, s=15)        plt.draw()  # 动态更新图表    plt.show()    keep_running = input("继续吗?(y/n):")    if keep_running != 'y':        break
图片说明:

上述代码会在每次迭代时重绘图表,每次添加一个新的随机漫步点,并使用不同的颜色表示不同的步骤。

请根据需要调整代码和绘图内容,确保对应的图片和功能与上述代码一致。

转载地址:http://qzvoz.baihongyu.com/

你可能感兴趣的文章
NFS安装配置
查看>>
NFS的安装以及windows/linux挂载linux网络文件系统NFS
查看>>
NFS的常用挂载参数
查看>>
NFS网络文件系统
查看>>
nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
查看>>
NFV商用可行新华三vBRAS方案实践验证
查看>>
ng build --aot --prod生成文件报错
查看>>
ng 指令的自定义、使用
查看>>
nghttp3使用指南
查看>>
Nginx
查看>>
nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
查看>>
nginx + etcd 动态负载均衡实践(二)—— 组件安装
查看>>
nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
查看>>
Nginx + Spring Boot 实现负载均衡
查看>>
Nginx + uWSGI + Flask + Vhost
查看>>
Nginx - Header详解
查看>>
Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
查看>>
nginx 1.24.0 安装nginx最新稳定版
查看>>
nginx 301 永久重定向
查看>>
nginx css,js合并插件,淘宝nginx合并js,css插件
查看>>