python绘制自己的xy画柱状图
时间: 2023-04-02 12:04:48 浏览: 59
可以使用matplotlib库中的pyplot模块来绘制柱状图。首先需要导入matplotlib库和numpy库,然后使用pyplot模块中的bar函数来绘制柱状图。具体实现方法可以参考以下代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['A', 'B', 'C', 'D', 'E'])
y = np.array([10, 20, 30, 40, 50])
plt.bar(x, y)
plt.show()
这段代码会绘制出一个简单的柱状图,其中x轴为A、B、C、D、E,y轴为10、20、30、40、50。你可以根据自己的需求修改x和y的值,来绘制不同的柱状图。
相关问题
python绘制双柱状图
好的,可以使用Python中的Matplotlib库来绘制双柱状图。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
men_means = [20, 35, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
x = np.arange(len(labels))
width = 0.35
# 绘图
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, men_means, width, label='Men')
rects2 = ax.bar(x + width/2, women_means, width, label='Women')
# 添加轴标签、标题和图例
ax.set_ylabel('Scores')
ax.set_xlabel('Groups')
ax.set_title('Scores by group and gender')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
# 添加数据标签
def autolabel(rects):
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
plt.show()
```
解释一下这段代码:
1. 导入必要的库:Matplotlib和NumPy。
2. 准备数据:这里我们有两组数据,每组数据都有5个元素,分别代表5个组的男女得分。
3. 创建x轴坐标和柱状图的宽度。
4. 使用Matplotlib的subplots()函数创建一个图形对象和一个轴对象。
5. 使用Matplotlib的bar()函数在轴对象上创建柱状图。
6. 添加轴标签、标题和图例。
7. 添加数据标签:这里使用Matplotlib的annotate()函数添加每个柱状图的数值标签。
8. 显示图形。
运行这段代码,你会看到一个双柱状图,其中每个组都有男女两种得分。
pandas画柱状图 指定xy名称
您可以使用`pandas`和`matplotlib`库来绘制柱状图,并指定x和y轴的名称。下面是一个示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'Name': ['Tom', 'Nick', 'John', 'Lucy'],
'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)
# 绘制柱状图
plt.bar(df['Name'], df['Age'])
# 添加x和y轴标签
plt.xlabel('Name')
plt.ylabel('Age')
# 显示图形
plt.show()
```
在这个例子中,我们创建了一个包含姓名和年龄的数据框,并使用`plt.bar()`函数绘制了柱状图。然后,使用`plt.xlabel()`和`plt.ylabel()`函数分别指定了x和y轴的名称为"Name"和"Age"。最后,使用`plt.show()`显示图形。
您可以根据自己的数据和需求进行相应的调整和修改。希望对您有帮助!