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
- 资源: 952
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python的datetime模块是一个强大的日期和时间处理库,包含date/time/datetime/timedelta类
- 微信下载 - 快捷方式.lnk
- Python在电机控制项目的课程设计与应用
- 无人机系统设计全指南无人机系统设计全指南
- 基于C语言的无人机设计资源详述
- 麻豆源码/视频源码/苹果cms-v10版本/带采集规则/完美运营版
- application.properties
- 西南科技大学java实验 7.doc
- CORE JAVA Volume l: Fundamentals,12th EDITION FREE SAMPLE CHAPTE
- Atool侧边栏 chrome+edge AI插件
评论1