plt.bar的横轴坐标的值,如何改成纵向显示
时间: 2024-10-10 14:11:53 浏览: 42
在Matplotlib中,`bar`函数通常用于创建条形图,其默认情况下横坐标表示x轴,纵坐标表示每个条形的高度。如果你想将横坐标变成纵坐标,你需要转换数据结构或使用其他类型的图表。例如,你可以使用堆积面积图(stacked area plot)或者堆叠柱状图(stacked bar chart),在这种情况下,你可以将数据按行排列,然后每一列代表一个新的时间点或类别。
下面是一个简单的例子,展示如何创建一个堆叠柱状图,其中横坐标是列,纵坐标是行的数据:
```python
import matplotlib.pyplot as plt
import pandas as pd
# 假设你有如下DataFrame数据
data = {'Category': ['A', 'B', 'C'],
'Year': [2020, 2021, 2022],
'Value': [[50, 75], [60, 80], [40, 90]]} # 每个元素是一个列表,分别对应每一年的数据
df = pd.DataFrame(data)
# 转置数据以便行代表时间,列代表类别
df_t = df.set_index('Year').T
plt.stackplot(df_t.index, df_t.values.T, labels=df.columns) # 将数据转置后作为参数传入stackplot
plt.xlabel('Categories (vertical)')
plt.ylabel('Values (horizontal)')
plt.legend()
plt.title('Stacked Bar Chart with Vertical Categories')
plt.show()
```
在这个示例中,横坐标变成了垂直方向的类别,纵坐标仍然是数值。
阅读全文