数据可视化训练第一天(matplotlib直线;散点图,随机漫步)

前言

本人自己的练习记录;如有错误请指正;

https://matplotlib.org/stable/gallery/lines_bars_and_markers/index.html

官方有许多例子,可以找到自己需要的图像模仿进行绘制

1.一个简单的直线例子

就如同我们学习C语言的第一个helloword时候一样;我们也了解最基本的例子;关于具体细节可以不需要第一时间了解

python 复制代码
import matplotlib.pyplot as plt
#准备数据
x_values=list(range(0,10))
y_values=list(range(0,10))
#绘制图像
fig,ax=plt.subplots()
plt.plot(x_values,y_values)
plt.show()

现在;你可以任意更改x_values与y_values的值;来画出一条简单的直线。

2.将简单的直线完善一下

通过这张图片,我们可以了解到更多东西。现在我们试着为这幅图像设置标题,x轴名字,y轴名字等属性

python 复制代码
import matplotlib.pyplot as plt
#准备数据
x_values=list(range(0,10))
y_values=list(range(0,10))
#绘制图像
fig,ax=plt.subplots()

plt.plot(x_values,y_values,linewidth=10,c='red')
ax.set_title("example",fontsize=24)
ax.set_xlabel('x',fontsize=14)
ax.set_ylabel('y',fontsize=14)
#设置刻度的大小;axis=both表示x轴与y轴都选;大小变为14
#也可以axis='y'或者'x'
ax.tick_params(axis='both',labelsize=14)

plt.show()

3.插入figure(图形)和axes的介绍

可以简单的理解figure就是一个空白的图层,创建axes就是在里面创建坐标轴

python 复制代码
fig=plt.figure()#一个空的图形对象;没有axes
fig,ax=plt.subplots()#一个图形对象对应一个axes
fig,axs=plt.subplots(2,2)#一个图像有四个网格的axes
#创建三个axes,一个在左侧;另外两个在右侧
fig,axs=plt.subplot_mosaic([['left','right_top'],['left','right_bottom']])
#这样使用子图层
axs['left'].set_title("left")

plt.show()

3绘制多条颜色不同的直线

python 复制代码
import matplotlib.pyplot as plt
#准备数据
x_values=list(range(0,10))
y_values=list(range(0,10))
y_values1=[value**2 for value in range(0,10)]
y_values2=[value**3 for value in range(0,10)]
#绘制图像
fig,ax=plt.subplots()

ax.plot(x_values,y_values,linewidth=2,c='red')
ax.set_title("example",fontsize=24)
ax.set_xlabel('x',fontsize=14)
ax.set_ylabel('y',fontsize=14)
ax.tick_params(axis='both',labelsize=14)
ax.plot(x_values,y_values1,c='blue',linewidth=2)
ax.plot(x_values,y_values2,c='yellow',linewidth=2)

plt.show()

4绘制简单的散点图

python 复制代码
import matplotlib.pyplot as plt
from random import randint

x_values=[randint(0,10) for i in range(0,10)]
y_values=[randint(0,20) for j in range(0,10)]

fig,ax=plt.subplots(figsize=(5,2.7))
ax.scatter(x_values,y_values,linewidth=2,c='red')
ax.set_title('san dian tu',fontsize=24)
ax.set_xlabel('x',fontsize=14)
ax.set_ylabel('y',fontsize=14)

plt.show()

我的中文显示有问题;这里用拼音

使用颜色映射;根据y值,进行从浅到深的映射

python 复制代码
ax.scatter(x_values,y_values,linewidth=2,c=y_values,cmap=plt.cm.Reds)

5随机漫步实战

抽象一个漫步类,默认步数是5000,用scatter打印出来

python 复制代码
from random import choice
import matplotlib.pyplot as plt
import matplotlib

class RandomWalk:
    """随机漫步类"""
    
    def __init__(self,num_points=5000):
        self.num_points=num_points
        self.x_values=[0]
        self.y_values=[0]
        
    def walk(self):
        
        while len(self.x_values) < self.num_points:
            x_direction=choice([-1,1])
            y_direction=choice([-1,1])
            x_distance=choice([0,1,2,3,4,5])
            y_distance=choice([0,1,2,3,4,5])
            x_step=x_direction*x_distance
            y_step=y_direction*y_distance
            
            #不允许原地踏步
            if x_step == 0 and y_step == 0:
                continue
            x=self.x_values[-1]+x_step
            y=self.y_values[-1]+y_step
            self.x_values.append(x)
            self.y_values.append(y)
            

num_points=5000
walkrandom=RandomWalk(num_points)
walkrandom.walk()

fig,ax=plt.subplots()
#保存各点的先后顺序
point_nums=range(walkrandom.num_points)
ax.scatter(walkrandom.x_values,walkrandom.y_values,s=3,c=point_nums,cmap=plt.cm.Blues,edgecolors='none')
ax.set_title('random walk')
ax.set_xlabel('x')
ax.set_ylabel('y')

#将开始点设置的醒目一些
ax.scatter(0,0,s=20,c='red')
#结尾点同理
ax.scatter(walkrandom.x_values[-1],walkrandom.y_values[-1],s=20,c='green')

#隐藏坐标轴
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)

plt.show()
        
相关推荐
凭栏落花侧7 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
bin91539 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
bin91531 天前
【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别
大数据·前端·数据库·信息可视化·数据分析·excel·数据可视化
安冬的码畜日常1 天前
【D3.js in Action 3 精译_028】3.4 小节 DIY 实战:使用 Observable 在线绘制 D3 条形图
前端·javascript·信息可视化·数据可视化·d3.js·observable
FUXI_Willard1 天前
MATLAB绘图基础9:多变量图形绘制
开发语言·matlab·信息可视化·数据可视化·matlab绘图
bin91532 天前
【EXCEL数据处理】000014 案例 EXCEL分类汇总、定位和创建组。附多个操作案例。
信息可视化·数据挖掘·数据分析·excel·数据可视化·数据图表·excel 数据分析
bin91532 天前
【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
强heaven2 天前
【Streamlit案例】制作销售数据可视化看板
python·信息可视化
安冬的码畜日常2 天前
【D3.js in Action 3 精译_025】3.4 让 D3 数据适应屏幕(中)—— 线性比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·javascript可视化
GIS数据转换器2 天前
城市大脑:智慧城市的神经中枢——典型实践与经验启示
大数据·人工智能·科技·信息可视化·gis·智慧城市