pandas创建画布并添加子图
时间: 2023-08-01 20:09:14 浏览: 113
要创建一个画布并添加子图,可以使用matplotlib库和pandas库中的plot函数。以下是一个示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
# 创建pandas DataFrame
df = pd.DataFrame(data)
# 创建画布和子图
fig, ax = plt.subplots()
# 在子图上绘制DataFrame
df.plot(ax=ax)
# 显示图形
plt.show()
```
在这个示例中,我们首先创建了一个包含两列数据的字典,然后将其转换为pandas DataFrame。接下来,我们使用matplotlib库中的`subplots()`函数来创建一个画布和一个子图。然后,我们使用pandas库中的`plot()`函数在子图上绘制DataFrame。最后,我们使用`show()`函数显示图形。
相关问题
各区二手房数量和均价析,根据以下要求进行分析 (1)导入“最新发布的北京二手房数据_预处理.xlsx”文件中的数据,并设置中文字体。 (2)创建新画布,设置大小为(12, 6)。 (3)将数据按所在区分组,并使用size()函数获取每个分组的统计个数;然后,创建一行一列的子图ax1,以统计个数的行标签为x轴数据、数值为y轴数据、颜色为(0.894, 0, 0.498)绘制柱状图,并设置y轴标题、图例和图表标题。 (4)将数据按所在区分组,并将分组数据的单价列按均值聚合,然后使用twinx()函数创建一个共享x轴的子图ax2,以均值为y轴数据、蓝色点画线星号为线条样式绘制折线图,并设置y轴标题、图例和每个数据的文本标签。
很抱歉,作为AI语言模型,我无法直接导入和处理数据,但我可以给你提供Python代码的实现示例,你可以在适当的环境下运行它们。以下是示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams['font.family'] = 'SimHei'
# 导入数据
df = pd.read_excel('最新发布的北京二手房数据_预处理.xlsx')
# 按所在区分组并使用size()函数获取每个分组的统计个数
grouped_df = df.groupby('所在区').size().reset_index(name='数量')
# 创建画布并设置大小
fig, ax1 = plt.subplots(figsize=(12, 6))
# 绘制柱状图
ax1.bar(grouped_df['所在区'], grouped_df['数量'], color=(0.894, 0, 0.498))
ax1.set_ylabel('数量')
ax1.set_xlabel('所在区')
ax1.set_title('各区二手房数量')
# 将数据按所在区分组并将分组数据的单价列按均值聚合
grouped_df = df.groupby('所在区')['单价'].mean().reset_index(name='均价')
# 创建共享x轴的子图
ax2 = ax1.twinx()
# 绘制折线图
ax2.plot(grouped_df['所在区'], grouped_df['均价'], 'bp-', label='均价')
ax2.set_ylabel('均价(元/平米)')
ax2.set_title('各区二手房均价')
ax2.legend(loc='upper right')
# 添加每个数据的文本标签
for x, y in zip(grouped_df['所在区'], grouped_df['均价']):
ax2.text(x, y, f'{y:.0f}', ha='center', va='bottom')
plt.show()
```
希望能对你有所帮助!
用python绘制四个子图为折线图运用按列读取csv将x轴数据列表,其余按原本读取内容进行作图
好的,我先给出一个示例代码,你可以参考一下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取CSV文件,获取数据
data = pd.read_csv('data.csv')
x = list(data.iloc[:, 0])
y1 = list(data.iloc[:, 1])
y2 = list(data.iloc[:, 2])
y3 = list(data.iloc[:, 3])
y4 = list(data.iloc[:, 4])
# 创建画布和子图,设置图形大小
fig, axs = plt.subplots(2, 2, figsize=(10, 8))
# 绘制第一个子图
axs[0, 0].plot(x, y1)
axs[0, 0].set_title('Line Plot 1')
# 绘制第二个子图
axs[0, 1].plot(x, y2)
axs[0, 1].set_title('Line Plot 2')
# 绘制第三个子图
axs[1, 0].plot(x, y3)
axs[1, 0].set_title('Line Plot 3')
# 绘制第四个子图
axs[1, 1].plot(x, y4)
axs[1, 1].set_title('Line Plot 4')
# 添加全局标题
fig.suptitle('Four Line Plots')
# 显示图形
plt.show()
```
代码解释:
1. 首先,我们使用 pandas 库中的 `read_csv()` 方法读取 CSV 文件,并将数据存储在 `data` 变量中。
2. 然后,我们从 `data` 中获取 x 轴数据和四个 y 轴数据,分别存储在 `x`、`y1`、`y2`、`y3` 和 `y4` 变量中。
3. 接着,我们使用 Matplotlib 库创建一个大小为 2x2 的画布和四个子图,存储在 `fig` 和 `axs` 变量中。
4. 在每个子图中,我们使用 `plot()` 方法绘制折线图,并使用 `set_title()` 方法设置子图标题。
5. 最后,我们使用 `suptitle()` 方法添加全局标题,并使用 `show()` 方法显示图形。
请注意,实际使用时,你需要将代码中的 `data.csv` 替换为你的 CSV 文件路径。另外,你也可以根据需要调整画布大小、子图布局等参数。