项目2 数据可视化--- 第十五章 生成数据

news2025/3/31 22:52:57

数据分析是使用代码来探索数据内的规律和关联。

数据可视化是通过可视化表示来 探索和呈现数据集内的规律。

好的数据可视化,可以发现数据集中未知的规律和意义。

一个流行的工具是Matplotlib,他是一个数据绘图库;

还有Plotly包,这个包生成的图形非常适合在数字设备上显示——不仅能根据显示设备的尺寸自动调整大小,还具备众多交互特性,如在用户将鼠标指向图形的不同区域时,突出显示数据集的相应特征。

15.1  安装Matplotlib

python -m pip install --user matplotlib

15.2 绘制简单的折线图

fig相当于一个大图片窗口;ax 相当于里面的线 内容。 

  1. fig ,ax =plt.subplots()
  2. plt.plot(数据参数) 
  • #创建窗口和图 subplots()

    fig, ax = plt.subplots()

    #ax图调用plot方法 传入数据参数

    ax.plot(input_values, squares, linewidth=3)

 15.2.1 修改标签文字和线条粗细

1.添加图题并给坐标轴加上标签

import matplotlib.pyplot as plt

squares = [1, 4, 9, 16, 25]

fig, ax = plt.subplots()
#linewidth 设置线条粗细
ax.plot(squares, linewidth=3)

# 设置图题并给坐标轴加上标签
ax.set_title("Square Numbers", fontsize=24)
ax.set_xlabel("Value", fontsize=14)
ax.set_ylabel("Square of Value", fontsize=14)

# 设置刻度标记的样式,将刻度标签字体大小设置为 14
ax.tick_params(labelsize=14)

plt.show()

15.2.2 校正绘图

图更清楚了 标题字大了,但是,数据绘制的并不正确。

折线图的终点 4的平方为25。

可给plot同时提供输入值和输出值。

 marker='o')

import matplotlib.pyplot as plt
#相当于给横纵坐标对应的点了
input_values = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]

#1.调用subplots()函数方法
fig, ax = plt.subplots()
#2.调用plot方法 传入数据列表当做数据参数    marker='o'整个小圆点更容易看出点
ax.plot(input_values, squares, linewidth=3 ,marker='o')

# Set chart title and label axes.
ax.set_title("Square Numbers", fontsize=24)
ax.set_xlabel("Value", fontsize=14)
ax.set_ylabel("Square of Value", fontsize=14)

# Set size of tick labels.
ax.tick_params(labelsize=14)

plt.show()

15.2.3 使用内置样式

 Matplotlib提供很多已经定义好的样式,这些样式包含默认的背景色、网格线、线条粗细、字体和字号等设置,我们无需做太多定制就能有不错的可视化效果。看我们系统中使用的所有样式,可以在终端进入python 再输入:

import matplotlib.pyplot as plt

 

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

 有时候, 需要绘制散点图并设置各个数据点的样式。

可以想一个颜色显示数值小的数据,另一个颜色显示数值大的数据。

在绘制大数据模型时,还可先对每个点都设置同样的样式,再使用不同的样式重新描绘某些点,突出某些点。

绘制单个点,可以使用scatter()方法,并向它传递该点的xy轴坐标值。

 绘制一系列的散点

15.2.6 自动计算数据

比如计算平方数 

相当于 x轴给值 ,y轴给平方值。

# axis方法设置每个坐标轴的取值范围
# 四个参数分别是 x的最小和最大;y轴的最小和最大值
ax.axis([0, 1100, 0, 1_100_000])

15.2.7 定制刻度标记

没啥用 plain

可以覆盖默认的刻度标记样式

 

15.2.8 定制颜色

15.2.9 使用颜色映射

是一个从起始颜色渐变到结束颜色的颜色序列,在可视化中,颜色映射用于突出数据的规律。

用较浅的颜色来显示较小的值,使用较深的颜色来显示较大的值。

使用颜色映射,可根据精心设计的色标准确的设置所有点的颜色。

ax.scatter(x_values, y_values, s=1,color ='red',marker='o')

ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Reds_r, s=10)

了解其他颜色映射

Matplotlib — Visualization with Python

 

15.2.10 自动保存绘图


import os
# 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 将当前工作目录切换到脚本所在目录
os.chdir(script_dir)

import matplotlib.pyplot as plt

x_values = range(1, 1001)
y_values = [x**2 for x in x_values]

# plt.style.use('seaborn')
plt.style.use('seaborn-v0_8')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

# Set chart title and label axes.
ax.set_title("Square Numbers", fontsize=24)
ax.set_xlabel("Value", fontsize=14)
ax.set_ylabel("Square of Value", fontsize=14)

# Set size of tick labels.
ax.tick_params(labelsize=14)

# Set the range for each axis.
ax.axis([0, 1100, 0, 1_100_000])
ax.ticklabel_format(style='plain')

# plt.show()
#第一个参数 命名图片         第二个参数 将绘图多余的空白区域裁剪掉
# 这个图片会存储到当前py文件的同目录下
plt.savefig('picture.png',bbox_inches= 'tight')

 路径变成当前目录下!!!!!
import os
# 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 将当前工作目录切换到脚本所在目录
os.chdir(script_dir)

 

 15.3 随机游走

15.4 使用Plotly 模拟掷骰子

使用Plotly来生成交互式图形。

当需要创建在浏览器中显示的图形时,它生成的图形将自动缩放,以适应观看者的屏幕。

交互式:当用户将鼠标指向特定元素,将显示有关该元素的信息。将使用Plotly Express来创建初始图形。

Plotly Express是plotly的子集,使用尽可能少的代码生成绘图。

我们先使用几行代码生成初始绘图,在确定输出正确之后再使用matplotlib那样对绘图进行定制。

15.4.1 安装plotly

python -m pip install --user plotly

Plotly Express依赖于pandas(一个高效处理数据的库),需要再安装pandas

python -m pip install --user pandas

 

1.创建die类 

2.掷筛子 

3. 分析结果 

# Analyze the results.
frequencies = []
poss_results = range(1, die.num_sides+1) #range(1,6)输出的是1 2  3 4 5,所以range要加1
for value in poss_results:
    frequency = results.count(value) #计算每个点出现的次数
    frequencies.append(frequency)  #加到空列表里的末尾

 

 4.绘制直方图

 5.定制绘图

# Visualize the results.
title = "Results of Rolling One D6 1,000 Times"
labels = {'x': 'Result', 'y': 'Frequency of Result'}
fig = px.bar(x=poss_results, y=frequencies, title=title, labels=labels)
fig.show()

6. 当条形太多,x轴默认布局没有加上标签

 

6.保存图形 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2300084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT (四)模型/视图 QFileSystemModel,QStringListModel,QStandardItemModel

思考:QTableWidget 在某种程度上可以等价为QStandardItemModel,同理,其他的功能也有类似的等价,但是以当前的QTableWidget 和QStandardItemModel为例的话,两者都是用于实现建立表格的相关组件,只不过QStand…

. Unable to find a @SpringBootConfiguration(默认软件包中的 Spring Boot 应用程序)

解决: 新建一个包即可 问题: 默认软件包中的 Spring Boot 应用程序。 原因: 默认包的定义 : 如果一个 Java 类没有使用 package 声明包名,则该类会被放置在默认包中。Spring Boot 遵循 Java 的包管理约定&#xff…

FRRouting配置与OSPF介绍,配置,命令,bfd算法:

文章目录 1、frrouting的配置:2、ospf2.1、检测和维护邻居关系2.2、ospfDR和BDR2.3、odpf邻居表2.4、ospf常用命令2.5、bfd配置 1、frrouting的配置: sudo service zebra start sudo service ospfd start telnet localhost 2604 en configure termina…

【MyBatis】预编译SQL与即时SQL

目录 1. 以基本类型参数为例测试#{ }与${ }传递参数的区别 1.1 参数为Integer类型 1.2 参数为String类型 2. 使用#{ }传参存在的问题 2.1 参数为排序方式 2.2 模糊查询 3. 使用${ }传参存在的问题 3.1 SQL注入 3.2 对比#{ } 与 ${ }在SQL注入方面存在的问题 3.3 预编译…

Python数据可视化 - Matplotlib教程

文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…

DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决

我的个人主页 我的专栏:人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!!点赞👍收藏❤ 一、引言 在机器学习的广袤天地中,大型语言模型(LLM)无疑是最…

内容中台重构企业内容管理流程驱动智能协作升级

内容概要 内容中台作为企业数字化转型的核心基础设施,通过技术架构革新与功能模块整合,重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系,将分散的创作、存储、审核及分发环节纳入统一平台管理。基…

STM32 Flash详解教程文章

目录 Flash基本概念理解 Flash编程接口FPEC Flash擦除/写入流程图 Flash选项字节基本概念理解 Flash电子签名 函数读取地址下存放的数据 Flash的数据处理限制部分 编写不易,请勿搬运,感谢理解!!! Flash基本概念…

小米 R3G 路由器刷机教程(Pandavan)

小米 R3G 路由器刷机教程(Pandavan) 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而,原厂固件的功能相对有限,难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能,还能通过第三方固…

红队视角出发的k8s敏感信息收集——Kubernetes API 扩展与未授权访问

针对 Kubernetes API 扩展与未授权访问 的详细攻击视角分析,聚焦 Custom Resource Definitions (CRD) 和 Aggregated API Servers 的潜在攻击面及利用方法: ​ 攻击链示例 1. 攻击者通过 ServiceAccount Token 访问集群 → 2. 枚举 CRD 发现数据库配…

11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)

11. Docker 微服务实战(将项目打包生成镜像&#xff0c;在 Docker 当中作为容器实例运行) 文章目录 11. Docker 微服务实战(将项目打包生成镜像&#xff0c;在 Docker 当中作为容器实例运行)2. 最后&#xff1a; 建 Module - docker_boot 编辑 pom <?xml version"1.0&…

计算机视觉:卷积神经网络(CNN)基本概念(二)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络 接上一篇《计算机视觉&am…

【数据结构-红黑树】

文章目录 红黑树红黑树介绍红黑树的五个基本性质红黑树的平衡原理红黑树的操作红黑树的操作 代码实现节点实现插入和查询操作 红黑树 红黑树介绍 红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡的二叉查找树&#xff08;Binary Search Tree, BST&#xff09;&…

dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型

要将 dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型. 申请阿里云百练的KEY 添加模型 测试模型

应用分层、三层架构和MVC架构

前言 在前面中&#xff0c;我们已经学习了Spring MVC 的一些基础操作&#xff0c;那么后面就用一些简单的案例来巩固一下。 在开始学习做案例之前&#xff0c;我们先来了解一下在软件开发中常见的设计模式和架构。 应用分层 含义 应用分层是一种软件开发设计思想&#xff0…

Apache Struts2 - 任意文件上传漏洞 - CVE-2024-53677

0x01&#xff1a;漏洞简介 Apache Struts 是美国 Apache 基金会的一个开源项目&#xff0c;是一套用于创建企业级 Java Web 应用的开源 MVC 框架&#xff08;将软件分为模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&a…

传统混合专家模型MoE架构详解以及python示例(DeepSeek-V3之基础)

我们已经了解到DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。而DeepSeekMoE架构的底层模型采用了混合专家模型(Mixture of Experts,MoE)架构。所以我们先了解一下传统混合专家模型MoE架构。 一、传统混合专家模…

安全筑基,智能赋能:BeeWorks IM引领企业协同新纪元

在数字经济高速发展的今天&#xff0c;企业通讯系统已从单纯的信息传递工具演变为支撑业务创新的核心平台。传统通讯工具在安全性、智能化、协同性等方面的不足&#xff0c;严重制约着企业的数字化转型进程。BeeWorks IM系统以其创新的技术架构和智能化功能&#xff0c;正在重新…

solidworks零件的绘制学习

1、拉伸凸台拉伸切除可以在一个零件中打孔&#xff0c;如下图&#xff1a; 2、旋转凸台配合旋转切除&#xff1b; 3、薄壁特征&#xff1a;在拉伸凸台&#xff0c;旋转凸台中都有&#xff1b;在一个面中画完草图&#xff0c;然后选择拉伸凸台或旋转凸台&#xff0c;里面就会出…

llama.cpp部署 DeepSeek-R1 模型

一、llama.cpp 介绍 使用纯 C/C推理 Meta 的LLaMA模型&#xff08;及其他模型&#xff09;。主要目标llama.cpp是在各种硬件&#xff08;本地和云端&#xff09;上以最少的设置和最先进的性能实现 LLM 推理。纯 C/C 实现&#xff0c;无任何依赖项Apple 芯片是一流的——通过 A…