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

Matplotlib绘制常用图像

一.柱状图

ax.bar

(x, height, width=0.8, bottom=None, align='center', **kwargs)

- : 柱状图的 X 轴位置,就是柱子的标签。

- height : 柱状图的高度,就是y的值。

- width : 柱状图的宽度,默认为 0.8。

- bottom : 柱状图的底部位置,默认为 0,也就是原点叫啥名取啥值。

- align : 柱状图与标签的对齐方式,可以是 'center'(居中对齐)或 'edge'(边缘对齐)。

- **kwargs : 其他可选参数,用于定制柱状图的外观,如 color、edgecolor、linewidth 等。

import matplotlib.pyplot as plt
import numpy as np

# 给定标签
labels = ['A','B','C','D']

# 给定高度
values = [10,20,30,40]

# 绘制柱状图
plt.bar(labels,values,0.5,align='edge',color='orange')

plt.show()



1.1 堆叠柱状图

啥意思?就是柱状图上方又有柱状图,两个不同的东西连在一起。

import matplotlib.pyplot as plt
import numpy as np

# 给定标签
labels = ['A','B','C','D']

# 给定高度
values = [10,20,30,40]
values1 = [1,2,3,4]

plt.bar(labels,values,color = 'green')

# 设置bottom就是完成堆叠的重要一步
plt.bar(labels,values1,bottom= values,color = 'red')

plt.show()

1.2 分组柱状图

就是把一个标签占的地方分成几份,然后按自定义的大小绘制各自的图像。

# 数据
categories = ['A', 'B', 'C', 'D']
values1 = [20, 35, 30, 25]
values2 = [15, 25, 20, 10]

# 创建图形和子图
fig, ax = plt.subplots()

# 计算柱状图的位置
x = np.arange(len(categories))
width = 0.35

# 绘制第一个数据集的柱状图
ax.bar(x - width/2, values1, width, color='skyblue', label='Values 1')

# 绘制第二个数据集的柱状图
ax.bar(x + width/2, values2, width, color='lightgreen', label='Values 2')

# 设置 X 轴标签
ax.set_xticks(x)
ax.set_xticklabels(categories)

# 设置标题和标签
ax.set_title('Grouped Bar Chart')
ax.set_xlabel('Categories')
ax.set_ylabel('Values')

# 添加图例
ax.legend()

# 显示图形
plt.show()

二.直方图

与柱状图的本质区别是所有柱子连在一起。

ax.hist

(x, bins=None, range=None, density=False, weights=None, cumulative=False, **kwargs)

- x: 数据数组。

- bins : 直方图的柱数,可以是整数或序列。

- range : 直方图的范围,格式为 (min, max)。

- density : 是否将直方图归一化,默认为 False。

- weights : 每个数据点的权重。

- cumulative : 是否绘制累积直方图,默认为 False。

- **kwargs : 其他可选参数,用于定制直方图的外观,如 color、edgecolor、linewidth 等。

from matplotlib import pyplot as plt
import numpy as np

# 生成一个正太分布的数据组
b = np.random.randn(1000)

plt.hist(b, bins = 100,range=(-5,5))
plt.show()

三.饼图

ax.pie

(x, explode=None, labels=None, colors=None, autopct=None, shadow=False, startangle=0, **kwargs)

- x: 数据数组,表示每个扇区的占比。

- explode : 一个数组,表示每个扇区偏离圆心的距离,默认为 None。

- labels : 每个扇区的标签,默认为 None。

- colors : 每个扇区的颜色,默认为 None。

- autopct : 控制显示每个扇区的占比,可以是格式化字符串或函数,默认为 None。

- shadow : 是否显示阴影,默认为 False。

- startangle : 饼图的起始角度,默认为 0。

- **kwargs : 其他可选参数,用于定制饼图的外观。

from matplotlib import pyplot as plt
import numpy as np

a = np.arange(0, 7)
label = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
plt.pie(a,labels = label,autopct='%1.1f%%')

plt.show()

四.散点图

ax.scatter

(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs)

- x : X 轴数据。

- y : Y 轴数据。

- s : 点的大小,可以是标量或数组。

- c : 点的颜色,可以是标量、数组或颜色列表。

- marker : 点的形状,默认为 'o'(圆圈)。

- cmap : 颜色映射,用于将颜色映射到数据。

- norm : 归一化对象,用于将数据映射到颜色映射。

- vmin, vmax : 颜色映射的最小值和最大值。

- alpha : 点的透明度,取值范围为 0 到 1。

- linewidths : 点的边框宽度。

- edgecolors : 点的边框颜色。

- **kwargs : 其他可选参数,用于定制散点图的外观。

from matplotlib import pyplot as plt

# 这里直接用的现成的代码,重点是看怎么设计的绘图

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

fig = plt.figure()
axes = fig.add_axes([.1,.1,.8,.8])

# 自定义数据
x = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
data = [
    [120, 132, 101, 134, 90, 230, 210],
    [220, 182, 191, 234, 290, 330, 310],
]

y0 = data[0]
y1 = data[1]

# 绘制图像
axes.scatter(x,y0,color='red')
axes.scatter(x,y1,color='blue')

axes.set_title('散点图')
axes.set_xlabel('日期')
axes.set_ylabel('数量')

plt.legend(labels=['Email', 'Union Ads'],)
plt.show()

相关文章:

  • 各种网址整理-vue,前端,linux,ai前端开发,各种开发能用到的网址和一些有用的博客
  • javaweb自用笔记:文件上传案例、登录(统一拦截)案例
  • SpringCould微服务架构之Docker(9)
  • 便捷解析下载热门短视频、图片的安卓免费软件
  • 代码随想录C++算法训练,二叉树(day16)
  • vcpkg安装及使用教程,以安装matio库解析mat文件为例
  • 部署Dify接入微信验证反代根目录创建一个文件通过微信小程序验证
  • 机器学习入门指南:从零开始理解AI的核心
  • 高效屏幕录制软件,涵盖多样功能满足多元需求
  • k8s node cpu打满会导致容器发生什么?
  • 蓝桥杯比赛 python程序设计——奇怪的捐赠
  • A股复权计算_权息数据整理
  • UI设计中的动画效果:如何让页面更生动?
  • rustdesk 自建服务器 key不匹配
  • 【并发编程 | 第一篇】线程相关基础知识
  • SQL注入之盲注技术详解
  • deepseek v3 0324实现工作流编辑器
  • 计算机专业考研科目及应试攻略
  • Linux下编译安装TIMPI
  • DuckDB统计实战:两步验证用户行为的关键假设
  • 昆钢建设集团网站/成都seo培训
  • 免费项目管理软件app/太原seo全网营销
  • 网站视差怎么做/网站推广软件下载
  • 怎么看出是模板网站/推广自己产品的文案
  • 3d云打印网站开发/商业软文怎么写
  • 网站名称 备案/南宁seo外包平台