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

数据可视化 - 单子图

 一、认识单子图

import matplotlib.pyplot as plt
import numpy as np
import pandas as pdplt.figure(num='单子图', figsize=(12, 8), facecolor='w')
# 中文字体
plt.rcParams['font.sans-serif'] = 'KaiTi'
# 负号显示
plt.rcParams['axes.unicode_minus'] = False# 2行,1列,第1个区域
plt.subplot(211)
x = np.arange(5)
y = np.array([1, 3, 5, 4, 8])
# 折线图
plt.plot(x, y, 'r--D', ms=5, mfc='r', mec='k')plt.title("折线图", fontsize='20')
plt.ylabel("温度", fontsize='14')
plt.xticks(x, ['1月', '2月', '3月', '4月', '5月'])
# 添加数据标签
for a, b in zip(x, y):plt.text(a, b+0.5, '%d' % b, ha='center', va='center')
plt.legend(['茂名市', ])bar_width=0.3
plt.subplot(212)
# 柱形图
plt.bar(x, y, width=bar_width)
plt.title("柱形图", fontsize='20')
plt.ylabel("温度",fontsize='14')
plt.xticks(x, ['1月', '2月', '3月', '4月', '5月'])
for a,b in zip(x,y):plt.text(a,b+0.1,'%d'%b,ha='center',fontsize=8)
plt.legend(['茂名市', ])# 自动调整适合布局
plt.tight_layout()
plt.show()

二、折线图和饼图

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.style as msplt.figure(num='子图', figsize=(12, 9), facecolor='w')
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = Falsex = np.arange(1, 13)
# x=np.array([x for x in range(1,13)])y1 = np.array([20, 28, 23, 16, 29, 36, 39, 33, 31, 19, 21, 25])
y2 = np.array([17, 22, 39, 26, 35, 23, 25, 27, 29, 38, 20, 20])
labels = []
for i in range(1, 13):labels.append(str(i) + '月')ax1 = plt.subplot(211)
ax1.set_facecolor('w')
ax1.plot(x, y1, 'm--o', linewidth=2, ms=5)
ax1.plot(x, y2, 'g--*', lw=2, ms=5)ax1.set_title('产品A与产品B的销售额趋势', fontsize='20')
ax1.set_ylabel('销售额(亿元)', fontsize='16')
ax1.set_xticks(x, labels)
ax1.set_xlabel('月份', fontsize='16')for a,b in zip(x,y1):ax1.text(a,b+0.5,'%d' %b,ha='center')
for a,b in zip(x,y2):ax1.text(a,b+0.5,'%d' %b,ha='center')ax1.legend(['产品A', '产品B', ])# 下面的饼图
ax2 = plt.subplot(223)
# 饼图是逆时针画的,两个%%显示一个%
# labels:每一个饼图的标签
# autopct:饼内显示的百分比
# explode:每一个脱离圆心的值
# pctdistance:饼图内数据标签对圆心的距离,默认0.6
# shadow=True:给饼图给阴影
# labeldistance:标签对圆心的距离,默认 1.1
# startangle:从多少度逆时针去画图;startangle=90,从90度开始画,默认0度
# radius:饼图的半径大小,默认1.2
# wedgeprops:饼图变圆环(0.7),linewidth:边长大小,edgecolor:边的颜色
# textprops:调标签文本,fontsize:字体大小,fontfamily:字体样式,color:字体颜色
# frame=True:显示图框
ax2.pie(y1,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('产品A的销售额',y=1.05, pad=10)ax2 = plt.subplot(224)
ax2.pie(y2,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('产品B的销售额',y=1.05, pad=10)plt.tight_layout()
plt.show()

三、饼图和堆积图

import matplotlib.pyplot as plt
import numpy as np
import pandas as pdplt.figure(num='多子图', figsize=(12, 9), facecolor='w')
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = Falsex = np.arange(1, 13)y1 = np.array([20, 28, 23, 16, 29, 36, 39, 33, 31, 19, 21, 25])
y2 = np.array([17, 22, 39, 26, 35, 23, 25, 27, 29, 38, 20, 20])
labels = []
for i in range(1, 13):labels.append(str(i) + '月')ax1 = plt.subplot(212)
# ax1.set_facecolor('grey')
# stack:堆积
ax1.stackplot(x,y1,y2)
ax1.set_ylim(0,80)ax1.set_title('产品A与产品B的销售额趋势', fontsize='20')
ax1.set_ylabel('销售额(亿元)', fontsize='16')
ax1.set_xticks(x, labels)
ax1.set_xlabel('月份', fontsize='16')
ax1.set_ylim(0,100)ax1.legend(['产品A', '产品B', ])ax2 = plt.subplot(221)
ax2.pie(y1,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('产品A的销售额',y=1.05, pad=10)ax2 = plt.subplot(222)
ax2.pie(y2,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('产品B的销售额',y=1.05, pad=10)plt.tight_layout()
plt.show()

http://www.lqws.cn/news/566785.html

相关文章:

  • 第10章 数组和指针
  • 左神算法之螺旋打印
  • SQL Server从入门到项目实践(超值版)读书笔记 19
  • 从GPTs到Real智能体:目前常见的几种创建智能体方式
  • spring:BeanPostProcessor后置处理器介绍
  • 小米路由器 AX3000T自定义子网掩码
  • Mybatis多条件查询设置参数的三种方法
  • stm32hal模块驱动(1)hpdl1414驱动
  • Vue的watch函数实现
  • 华为云 Flexus+DeepSeek 征文|华为云 Flexus 云服务 Dify-LLM 平台深度部署指南:从基础搭建到高可用实践
  • 智能制造——解读西门子数字化工厂规划报告(三年实施计划)【附全文阅读】
  • 机器学习在智能供应链中的应用:需求预测与库存优化
  • 大事件项目记录12-文章管理接口开发-总
  • 设计模式之适配器模式
  • OpenCV读取照片和可视化详解和代码示例
  • MySQL 安装使用教程
  • Java垃圾收集机制Test
  • PL-SLAM: Real-Time Monocular Visual SLAM with Points and Lines
  • Ai工具分享(2):Vscode+Cline无限免费的使用教程
  • XWPFDocument导出word文件
  • Linux中《动/静态库原理》
  • Redis缓存击穿深度解析:从现象到实战的完整解决方案
  • github上传代码步骤(http)
  • Cesium快速入门到精通系列教程十二:Cesium1.74中环绕地球生成​​经线环​​
  • Javaweb - 7 xml
  • 【智能协同云图库】智能协同云图库第三弹:基于腾讯云 COS 对象存储—开发图片模块
  • 日常 AI 工具汇总
  • Oracle 递归 + Decode + 分组函数实现复杂树形统计进阶(第二课)
  • 深入剖析 Linux 内核网络核心:sock.c 源码解析
  • 阿里云ACP-数据湖和机器学习