当前位置: 首页 > news >正文

Python做统计图之美

Python数据分析可视化

案例效果图

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib# 数据
data = {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"住宅类型": ["普通宅", "普通宅", "普通宅", "非普通宅", "非普通宅", "非普通宅", "非普通宅", "非普通宅", "其他", "其他", "非普通宅"],"容积率": ["列入", "列入", "列入", "列入", "列入", "列入", "列入", "列入", "不列入", "不列入", "不列入"],"开发成本": [4263, 4323, 4532, 5288, 5268, 5533, 5685, 4323, 2663, 2791, 2982],"房型面积": [77, 98, 117, 145, 156, 167, 178, 126, 103, 129, 133],"建房套数": [250, 250, 150, 250, 250, 250, 250, 75, 150, 150, 75],"开发成本 (元/)": [4263, 4323, 4532, 5288, 5268, 5533, 5685, 4323, 2663, 2791, 2982],"售价 (元/)": [12000, 10800, 11200, 12800, 12800, 13600, 14000, 10400, 6400, 6800, 7200]
}# 创建 DataFrame
df = pd.DataFrame(data)# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文显示
plt.rcParams['axes.unicode_minus'] = False  # 负号显示# 创建柱状图
plt.figure(figsize=(12, 7))# 华尔街日报风格的颜色
colors = ['#003f5c', '#2f4b7c', '#665191', '#a05195', '#d45087','#f95d6a', '#ff7c43', '#ffa600', '#ffd700', '#f0e0d0', '#c2c2c2']# 绘制柱状图
bars = plt.bar(df["房型"].astype(str), df["建房套数"], color=colors, edgecolor='black')# 添加数据标签
for bar in bars:yval = bar.get_height()plt.text(bar.get_x() + bar.get_width()/2, yval + 10, f'{yval}', ha='center', va='bottom', fontsize=10, fontweight='bold', color='black')# 设置x轴刻度标签
plt.xticks(df["房型"].astype(str), [f'房型{i}' for i in df["房型"]], fontsize=12)# 设置轴标签和标题
plt.ylabel('建房套数', fontsize=12)
plt.title('不同房型的建房套数', fontsize=14, fontweight='bold')# 添加网格线
plt.grid(axis='y', linestyle='--', alpha=0.7)# 自动调整图表边距以确保内容显示完整
plt.tight_layout()# 显示图形
plt.show()

图形效果:
在这里插入图片描述

这个图的配色比较好看。

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rcParams# 数据
data = {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"住宅类型": ["普通宅", "普通宅", "普通宅", "非普通宅", "非普通宅", "非普通宅", "非普通宅", "非普通宅", "其他", "其他", "非普通宅"],"容积率": ["列入", "列入", "列入", "列入", "列入", "列入", "列入", "列入", "不列入", "不列入", "不列入"],"开发成本": [4263, 4323, 4532, 5288, 5268, 5533, 5685, 4323, 2663, 2791, 2982],"房型面积": [77, 98, 117, 145, 156, 167, 178, 126, 103, 129, 133],"建房套数": [250, 250, 150, 250, 250, 250, 250, 75, 150, 150, 75],"开发成本 (元/平方米)": [4263, 4323, 4532, 5288, 5268, 5533, 5685, 4323, 2663, 2791, 2982],"售价 (元/平方米)": [12000, 10800, 11200, 12800, 12800, 13600, 14000, 10400, 6400, 6800, 7200]
}# 创建 DataFrame
df = pd.DataFrame(data)# 设置字体
rcParams['font.sans-serif'] = ['SimHei']  # 例如,使用 SimHei 字体显示中文
rcParams['axes.unicode_minus'] = False    # 显示负号# 创建散点图
plt.figure(figsize=(14, 7))
scatter = plt.scatter(df["房型面积"], df["售价 (元/平方米)"], c=df["开发成本"], cmap='viridis', s=100, edgecolors='k')
plt.colorbar(scatter, label='开发成本 (元/平方米)')
plt.xlabel('房型面积 (平方米)')
plt.ylabel('售价 (元/平方米)')
plt.title('房型面积与售价以及成本的关系')
plt.grid(True)# 在每个数据点上标记房型,保持一定距离
for i in range(len(df)):plt.text(df["房型面积"][i] + 2, df["售价 (元/平方米)"][i] + 200, f'房型{i + 1}', fontsize=9, ha='left')plt.show()

散点图效果如下:
在这里插入图片描述

散点图可以同时反应3个关系。

import pandas as pd
import matplotlib.pyplot as plt# 数据
data = {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"建房套数": [250, 250, 150, 250, 250, 250, 250, 75, 150, 150, 75]
}# 创建 DataFrame
df = pd.DataFrame(data)# 饼图绘制
plt.figure(figsize=(10, 8))# 高级感配色方案
colors = ['#6C5B7B', '#C06C84', '#F67280', '#F8B195', '#F9D5A8', '#F3B6A3', '#E1C6C1', '#D9B8C4', '#C9A7B4', '#B68583', '#A9A5A0']# 绘制饼图
plt.pie(df["建房套数"], labels=[f'房型{i}' for i in df["房型"]], colors=colors, autopct='%1.1f%%', startangle=140, wedgeprops={'edgecolor': 'black'})# 添加标题
plt.title('不同房型建造套数的占比')# 显示图形
plt.show()

一个简单的饼图:

在这里插入图片描述

看起来比较清爽。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm, colors# 设置支持中文的字体(使用默认的或者系统中可用的字体)
plt.rcParams['font.sans-serif'] = ['SimHei']  # SimHei 是黑体字的中文字体
plt.rcParams['axes.unicode_minus'] = False   # 解决负号 '-' 显示问题# 提供的数据
labels = ['房型 1', '房型 2', '房型 3', '房型 4', '房型 5', '房型 6', '房型 7', '房型 8', '房型 9', '房型 10', '房型 11']
heights = [0.0606, 0.0909, 0.0758, 0.0909, 0.1061, 0.1212, 0.1364, 0.0909, 0.0303, 0.0455, 0.0606]# 按高度排序数据(顺时针递增)
sorted_indices = np.argsort(heights)
sorted_labels = [labels[i] for i in sorted_indices]
sorted_heights = [heights[i] for i in sorted_indices]# 创建反转渐变色
cmap = cm.get_cmap('plasma_r')  # 使用反转的渐变色
norm = colors.Normalize(vmin=min(sorted_heights), vmax=max(sorted_heights))
colors_map = [cmap(norm(height)) for height in sorted_heights]# 设置图形和极坐标
plt.figure(figsize=(12, 12))
ax = plt.subplot(111, polar=True)# 设置高度和宽度
width = 2 * np.pi / len(sorted_heights)
angles = [i * width for i in range(len(sorted_heights))]# 绘制条形图
bars = ax.bar(x=angles, height=sorted_heights, width=width, bottom=0,linewidth=1, edgecolor="white", color=colors_map)# 标签设置
labelPadding = 0.02  # 调整标签与条形的距离
for bar, angle, height, label in zip(bars, angles, sorted_heights, sorted_labels):rotation = np.rad2deg(angle)alignment = "left"if angle >= np.pi / 2 and angle < 3 * np.pi / 2:alignment = "right"rotation = rotation + 180ax.text(x=angle, y=bar.get_height() + labelPadding,s=label, ha=alignment, va='center', rotation=rotation,rotation_mode="anchor")ax.set_thetagrids([], labels=[])
plt.show()

这是一个比较亮眼的图:
在这里插入图片描述

有点像旋转楼梯一样。

import matplotlib.pyplot as plt
import numpy as np# 提供的数据
labels = ['房型 1', '房型 2', '房型 3', '房型 4', '房型 5', '房型 6', '房型 7', '房型 8', '房型 9', '房型 10', '房型 11']
values = [0.0606, 0.0909, 0.0758, 0.0909, 0.1061, 0.1212, 0.1364, 0.0909, 0.0303, 0.0455, 0.0606]# 计算角度和条形宽度
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
angles += angles[:1]  # 完成圆圈values += values[:1]  # 完成圆圈# 创建图形和轴
fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(polar=True))# 绘制圆环
ax.fill(angles, values, color='lightblue', alpha=0.5)
ax.plot(angles, values, color='blue', linewidth=2)  # 边界# 添加标签
for i, (angle, value, label) in enumerate(zip(angles[:-1], values[:-1], labels)):x = (value + 0.05) * np.cos(angle)y = (value + 0.05) * np.sin(angle)ax.text(x, y, label, horizontalalignment='center', verticalalignment='center')# 设置标签和刻度
ax.set_yticklabels([])  # 移除y轴刻度标签
ax.set_xticks(angles[:-1])  # 设置x轴刻度
ax.set_xticklabels(labels, rotation=45, ha='right')  # 设置x轴标签# 显示图形
plt.show()

上面是一个雷达图:

在这里插入图片描述

用于成绩,各种表现,反应强项和若点。

import matplotlib.pyplot as plt
import numpy as np# 数据
labels = ['房型 1', '房型 2', '房型 3', '房型 4', '房型 5', '房型 6', '房型 7', '房型 8', '房型 9', '房型 10', '房型 11']
sizes = [0.0606, 0.0909, 0.0758, 0.0909, 0.1061, 0.1212, 0.1364, 0.0909, 0.0303, 0.0455, 0.0606]# 生成渐变色
cmap = plt.get_cmap('Blues')  # 可以选择其他渐变色图
colors = [cmap(i / len(sizes)) for i in range(len(sizes))]# 创建圆环图
fig, ax = plt.subplots()
wedges, texts, autotexts = ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, wedgeprops=dict(width=0.4), colors=colors)# 设置中文显示
for text in texts:text.set_fontsize(10)text.set_color('black')for autotext in autotexts:autotext.set_fontsize(8)autotext.set_color('black')# 保持圆形
ax.axis('equal')plt.title('房型分布圆环图')
plt.show()

上面是一个圆环图,通过圆环的面积,表示占比:
在这里插入图片描述

渐变色的颜色,看做清新顺畅。

相关文章:

Python做统计图之美

Python数据分析可视化 案例效果图 import pandas as pd import matplotlib.pyplot as plt import matplotlib# 数据 data {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"住宅类型": ["普通宅", "普通宅", "普通宅", &q…...

激光雷达点云投影到图像平面

将激光雷达点云投影到图像平面涉及几何变换和相机模型的应用。以下是该过程的基本原理&#xff1a; 1. 坐标系转换 激光雷达生成的点云通常位于激光雷达的坐标系中&#xff0c;而图像则在相机坐标系中。为了将点云投影到图像上&#xff0c;首先需要将点云从激光雷达坐标系转换…...

[python]将anaconda默认创建环境python版本设置为32位的

首先看看gpt怎么回答的 装了Anaconda。如果尚未安装&#xff0c;可以从Anaconda官网下载适合你的操作系统的安装程序&#xff0c;并按照安装向导进行安装。 二、创建32位Python环境 在Anaconda中&#xff0c;你可以通过修改环境变量来尝试切换到32位模式&#xff08;尽管这并…...

Jmeter+Influxdb+Grafana平台监控性能测试过程(三种方式)

一、Jmeter自带插件监控 下载地址&#xff1a;Install :: JMeter-Plugins.org 安装&#xff1a;下载后文件为jmeter-plugins-manager-1.3.jar&#xff0c;将其放入jmeter安装目录下的lib/ext目录&#xff0c;然后重启jmeter&#xff0c;即可。 启动Jmeter&#xff0c;测试计…...

[创业之路-135] :ERP、PDM、EDM、Git各种的用途和区别,硬件型初创公司需要哪些管理工具?

目录 前言&#xff1a; 一、ERP&#xff08;企业资源计划&#xff09; 二、PDM&#xff08;产品数据管理系统&#xff09; 三、EDM&#xff08;文档管理系统&#xff0c;有时也指电子邮件营销&#xff09; 四、Git 总结 五、硬件研发、生产型企业需要哪些管理工具&#…...

通过剪枝与知识蒸馏优化大型语言模型:NVIDIA在Llama 3.1模型上的实践与创新

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

DOM型xss靶场实验

xss是什么&#xff1f; XSS是一种经常出现在web应用中的计算机安全漏洞&#xff0c;它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制--例如同源策略(same origin policy)。这种类型的漏洞由…...

华为---端口隔离简介和示例配置

目录 1. 端口隔离概念 2. 端口隔离作用 3. 端口隔离优点 4. 端口隔离缺点 5. 端口隔离的方法和应用场景 6. 端口隔离配置 6.1 端口隔离相关配置命令 6.2 端口隔离配置思路 7. 示例配置 7.1 示例场景 7.2 网络拓扑图 7.3 基本配置 7.4端口隔离配置与验证 7.4.1 双…...

Android 架构模式之 MVC

目录 架构设计的目的对 MVC 的理解Android 中 MVC 的问题试吃个小李子ViewModelController 大家好&#xff01; 作为 Android 程序猿&#xff0c;MVC 应该是我们第一个接触的架构吧&#xff0c;从开始接触 Android 那一刻起&#xff0c;我们就开始接触它&#xff0c;可还记得我…...

节点使用简介:comfyui-photoshop

1、安装comfyui-photoshop 略过 一点要注意的是&#xff1a;在Photoshop上的安装增效工具&#xff0c;要通过Creative Cloud 桌面应用程序进行安装&#xff0c;才能成功在增效工具中显示&#xff0c;直接通过将文件解压到Plug-ins路径行不通&#xff08;至少对我来说行不通&am…...

使用Go语言将PDF文件转换为Base64编码

使用 Go 语言将 Base64 编码转换为 PDF 文件-CSDN博客本文介绍了如何使用 Go 语言将 Base64 编码转换为 PDF 文件&#xff0c;并保存到指定路径。https://blog.csdn.net/qq_45519030/article/details/141225772 在现代编程中&#xff0c;数据转换和编码是常见的需求。本文将介绍…...

XSS Game

关卡网址&#xff1a;XSS Game - Learning XSS Made Simple! | Created by PwnFunction 1.Ma Spaghet! 见源代码分析得&#xff0c;somebody接收参数&#xff0c;输入somebody111查看所在位置 使用input标签 <input onmouseoveralert(1337)> 2.Jefff jeff接收参数,在ev…...

???牛客周赛55:虫洞操纵者

题目描述 \,\,\,\,\,\,\,\,\,\,你需要在一个可以上下左右移动的 nnn\times nnn 棋盘上解开一个迷宫&#xff1a;棋盘四周都是墙&#xff1b;每个方格要么是可以通过的空方格 ′0′\sf 0′0′ &#xff0c;要么是不可通过的墙方格 ′1′\sf 1′1′ &#xff1b;你可以沿着空方格…...

Unity3D开发之OnCollisionXXX触发条件

A和B碰撞触发OnCollision函数条件如下&#xff1a; 1.A和B都要有collider。&#xff08;子物体有也可以&#xff09; 2.A和B至少有一个刚体&#xff08;Rigidbody&#xff09;组件&#xff0c;且刚体的isKinematic为false。如果为true不会触发。 3.挂载脚本的物体必须有刚体…...

spfa()算法(求最短路)

spfa算法是对bellman_ford算法的优化&#xff0c;大部分求最短路问题都可以用spaf算法来求。 注意&#xff1a; &#xff08;1&#xff09;如若图中有负权回路&#xff0c;不能用spfa算法&#xff0c;要用bellman_ford算法&#xff1b;若只有负权边&#xff0c;则可以用 spf…...

聊聊国产数据库的生态系统建设

生态系统是指在自然界中&#xff0c;生物与环境构成统一的整体&#xff0c;之间相互影响相互制约&#xff0c;并在一定时期内处于相对稳定的动态平衡状态。所谓数据库的生态系统&#xff0c;从用户的角度看&#xff0c;就是充分打通产品使用过程中上下游的关联&#xff0c;使其…...

JDK源码解析:LinkedList

1、背景 我们咨询一下腾讯混元大模型&#xff0c;什么是“LinkedList”。 以下是混元大模型的回答&#xff1a; LinkedList 是 Java 集合框架中的一种数据结构&#xff0c;它实现了 List 和 Deque 接口。LinkedList 是一个双向链表&#xff0c;这意味着每个元素都包含对前一个和…...

drawio的问题

drawio的问题 先给出drawio的链接https://app.diagrams.net/ 我在用overleaf写论文的过程中&#xff0c;发现了一个问题&#xff0c;就是使用drawio画好图之后&#xff0c;只能保存以下几个选项&#xff1a; 但是不管是什么类型&#xff0c;在overleaf上面图片都不显示。如果…...

零基础学习Redis(3) -- Redis常用命令

Redis是一个 客户端-服务器 结构的程序&#xff0c;Redis客户端和服务器可以在同一台主机上&#xff0c;也可以在不同主机上&#xff0c;客户端和服务器之间通过网络进行通信。服务器端负责存储和管理数据。客户端则可以通过命名对服务端的数据进行操作。 Redis客户端有多种&a…...

响应式Web设计:纯HTML和CSS的实现技巧-1

响应式Web设计&#xff08;Responsive Web Design, RWD&#xff09;是一种旨在确保网站在不同设备和屏幕尺寸下都能良好运行的网页设计策略。通过纯HTML和CSS实现响应式设计&#xff0c;主要依赖于媒体查询&#xff08;Media Queries&#xff09;、灵活的布局、可伸缩的图片和字…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...

李沐--动手学深度学习--GRU

1.GRU从零开始实现 #9.1.2GRU从零开始实现 import torch from torch import nn from d2l import torch as d2l#首先读取 8.5节中使用的时间机器数据集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps) #初始化模型参数 def …...