实验四子图的绘制及坐标轴共享

2024-02-09 05:30

本文主要是介绍实验四子图的绘制及坐标轴共享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 考察知识点绘制固定区域的多子图及坐标轴共享

按照下列要求绘制图表。

  1. 画布被规划为2×3的规划区域;
  2. 在编号为3的区域中绘制包含一条正弦曲线的子图;
  3. 在编号为5的区域中绘制包含一条余弦曲线的子图;
  4. 共享两个子图的x轴;
  5. 要求自定义添加一些常见的辅助元素,如刻度标签、标题等。

代码如下:

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
fig, axs = plt.subplots(2, 3, constrained_layout=True)
x = np.linspace(0, 2 * np.pi, 256, endpoint=True)
y1 = np.sin(x)
y2 = np.cos(x)
ax1 = plt.subplot(233)
ax1.plot(x, y1)
ax1.set_title('sin(x)')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax2 = plt.subplot(235, sharex=ax1)
ax2.plot(x, y2)
ax2.set_title('cos(x)')
ax2.set_xlabel('x')
ax2.set_ylabel('y')plt.show()

2. 考察知识点绘制自定义区域的子图

编写程序。基于下表数据,设计子图的非等分布局,绘制展示商家A与商家B的柱形图,并分别绘制商家A与商家B的饼图。要求添加常用的辅助元素,如标签、标题等。所绘图形大致如下图所示。

商家

衬衫

毛衣

领带

裤子

风衣

高跟鞋

袜子

商家A

120

56

28

98

129

28

107

商家B

60

140

153

145

160

70

54

 代码如下:

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsedata_a = np.array([120, 56, 28, 98, 129, 28, 107])
data_b = np.array([60, 140, 153, 145, 160, 70, 54])
labels = np.array(['衬衫', '毛衣', '领带', '裤子', '风衣', '高跟鞋', '袜子'])
tick_label = ['衬衫', '毛衣', '领带', '裤子', '风衣', '高跟鞋', '袜子']
ax_one = plt.subplot2grid((3, 2), (0, 0), rowspan=2, colspan=2)
x = np.arange(7)
y1 = np.array([120, 56, 28, 98, 129, 28, 107])
y2 = np.array([60, 140, 153, 145, 160, 70, 54])
xx = range(len(tick_label))
bar_rect = plt.bar(x, y1, tick_label=['衬衫', '毛衣', '领带', '裤子', '风衣', '高跟鞋', '袜子'],align='edge', width=0.3)
plt.bar(x + 0.4, y2, align='edge', width=0.3)
kinds = ['商家A', '商家B']
for a, b in zip(x + 0.2, y1):plt.text(a, b, '%.0f' % b, ha='center', va='bottom', fontsize=12);
for a, b in zip(x + 0.5, y2):plt.text(a, b, '%.0f' % b, ha='center', va='bottom', fontsize=12);
plt.xticks([index + 0.35 for index in xx], tick_label)
plt.legend(kinds)
plt.yticks([0, 50, 100, 150], ['0', '50', '100', '150'])
plt.ylabel('销售额')
ax_two = plt.subplot2grid((3, 2), (2, 0))
ax_two.pie(data_a, radius=1.5, labels=labels, autopct='%3.1f %%',colors=['#2F4F4F', '#FF0000', '#228B22', '#FFD700', '#B0C4DE', '#6495ED', '#9370DB'])
ax_two.set_title('商家A销售情况饼图',pad=15)
ax_two.set_aspect('equal')
ax_thr = plt.subplot2grid((3, 2), (2, 1))
ax_thr.pie(data_b, radius=1.5, labels=labels, autopct='%3.1f %%',colors=['#2F4F4F', '#FF0000', '#228B22', '#FFD700', '#B0C4DE', '#6495ED', '#9370DB'])
ax_thr.set_title('商家B销售情况饼图',pad=15)
ax_thr.set_aspect('equal')
plt.tight_layout()
plt.show()

这篇关于实验四子图的绘制及坐标轴共享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693249

相关文章

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

# VMware 共享文件

VMware tools快速安装 VMware 提供了 open-vm-tools,这是 VMware 官方推荐的开源工具包,通常不需要手动安装 VMware Tools,因为大多数 Linux 发行版(包括 Ubuntu、CentOS 等)都包含了 open-vm-tools,并且已经优化以提供与 VMware 环境的兼容性和功能支持。 建议按照以下步骤安装 open-vm-tools 而不

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

【C++】作用域指针、智能指针、共享指针、弱指针

十、智能指针、共享指针 从上篇文章 【C++】如何用C++创建对象,理解作用域、堆栈、内存分配-CSDN博客 中我们知道,你的对象是创建在栈上还是在堆上,最大的区别就是对象的作用域不一样。所以在C++中,一旦程序进入另外一个作用域,那其他作用域的对象就自动销毁了。这种机制有好有坏。我们可以利用这个机制,比如可以自动化我们的代码,像智能指针、作用域锁(scoped_lock)等都是利用了这种机制。

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接