python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)

### Python绘制双Y轴折线图以及单Y轴双变量柱状图的实例解析 本文主要分享关于如何利用Python绘制两种图表:双Y轴折线图以及单Y轴双变量柱状图。这两种图表在数据分析中非常常见,尤其是在需要同时展示两个或多个不同量级或者不同类型的数据时。 #### 一、准备工作 我们需要准备一些基本的数据,并确保已经安装了必要的库。本文主要使用的Python库包括: - **Matplotlib**:用于绘制图表。 - **Pandas**:用于数据处理。 ##### 安装必要的库 ```bash pip install matplotlib pandas ``` #### 二、数据预处理 根据提供的部分代码示例,我们首先需要对原始数据进行清洗。假设数据已经被保存在一个名为`acc-onlyRealImage-Iter2500.txt`的文本文件中,接下来将执行以下步骤: 1. **读取数据**:使用Python的文件读取功能读取文本文件中的数据。 2. **数据清洗**:通过正则表达式将文本中的多个空格替换为逗号,便于后续的数据处理。 3. **保存处理后的数据**:将清洗后的数据保存到一个新的文本文件中。 ```python import re PATTERN = '\s+' # 匹配文本中的长空格 class Cleaner: def __init__(self): self.content = open("acc-onlyRealImage-Iter2500.txt", "r") def grab_content(self): line = self.content.readline() pre = re.compile(PATTERN) while line: line_1 = pre.sub(',', line.strip()) # 去除行尾换行符 self.write_content(line_1) line = self.content.readline() def write_content(self, line_1): path = 'acc-onlyRealImage-Iter2500-after.txt' with open(path, 'a') as f: f.write(line_1 + '\n') # 运行数据清洗 cleaner = Cleaner() cleaner.grab_content() ``` #### 三、绘制双Y轴折线图 假设经过清洗后的数据格式如下所示: ``` Iteration,label,train,test,right,acc 1500,1,214,324,241,1.0 ... ``` 我们可以使用Pandas读取这些数据并绘制双Y轴折线图。 ##### 读取数据 ```python import pandas as pd df = pd.read_csv('acc-onlyRealImage-Iter2500-after.txt', header=None, names=['Iteration', 'label', 'train', 'test', 'right', 'acc']) ``` ##### 绘制双Y轴折线图 ```python import matplotlib.pyplot as plt fig, ax1 = plt.subplots() color = 'tab:red' ax1.set_xlabel('label') ax1.set_ylabel('train', color=color) ax1.plot(df['label'], df['train'], color=color) ax1.tick_params(axis='y', labelcolor=color) ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis color = 'tab:blue' ax2.set_ylabel('acc', color=color) # we already handled the x-label with ax1 ax2.plot(df['label'], df['acc'], color=color) ax2.tick_params(axis='y', labelcolor=color) fig.tight_layout() # otherwise the right y-label is slightly clipped plt.show() ``` #### 四、绘制单Y轴双变量柱状图 为了绘制单Y轴双变量柱状图,我们可以选择在同一张图上分别表示不同的变量,比如“train”和“acc”。 ```python fig, ax = plt.subplots() bar_width = 0.35 index = df['label'] bar1 = ax.bar(index - bar_width / 2, df['train'], bar_width, label='Train') bar2 = ax.bar(index + bar_width / 2, df['acc'], bar_width, label='Accuracy') ax.set_xlabel('Label') ax.set_ylabel('Value') ax.set_title('Train and Accuracy by Label') ax.legend() plt.show() ``` 通过以上步骤,我们可以成功地绘制出双Y轴折线图以及单Y轴双变量柱状图。这两种图表对于数据分析来说是非常有用的工具,可以帮助我们更好地理解数据之间的关系。























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 函数式编程到底能干嘛?一篇文章彻底明白Java Stream原理.doc
- K8s滚动发布和回滚机制实战,建议收藏.doc
- 系统崩了,结果只是时间戳格式写错了!完整复盘.doc
- MySQL Binlog同步机制原理图解,新人也能看懂.doc
- React + TypeScript 项目结构最佳实践(2025年版).doc
- 你所不知道的Nginx反向代理高级用法,全网最全配置讲解.doc
- Spring Boot启动慢?看我如何缩短30秒启动到3秒.doc
- Java中的“final”关键字,你真的理解它了吗?.doc
- 前端性能优化清单2025版:从FCP到CLS一个不漏.doc
- 说破天也没用!只有写个示例你才懂什么叫线程安全.doc
- RESTful接口设计十个必须遵循的规范(附案例).doc
- 踩过5个坑后,我才弄明白Spring事务失效的真正原因!.doc
- 我用ChatGPT辅助写测试用例,效率提升不止一点点.doc
- 不要再用传统方式导出Excel!Java + EasyExcel秒出百万数据.doc
- 使用ElasticSearch实现商品搜索联想功能全流程.doc
- 用了这么久MySQL,你知道limit分页其实隐藏性能陷阱吗?.doc



评论1