matplotlib绘制柱状图,要求有数据标签,有网格,
时间: 2023-05-16 13:05:01 浏览: 175
可以使用以下代码实现:
```python
import matplotlib.pyplot as plt
# 数据
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]
# 绘制柱状图
plt.bar(x, y, tick_label=['A', 'B', 'C', 'D', 'E'])
# 添加数据标签
for a, b in zip(x, y):
plt.text(a, b, str(b), ha='center', va='bottom')
# 添加网格
plt.grid(axis='y')
# 显示图形
plt.show()
```
这段代码可以绘制出带有数据标签和网格的柱状图。
相关问题
将xlsx文件中的数据使用matplotlib绘制柱状图
将xlsx文件中的数据使用matplotlib绘制柱状图通常需要经过以下几个步骤:
1. **导入库**:首先你需要导入`pandas`用于读取xlsx文件的数据,以及`matplotlib.pyplot`来创建图表。
```python
import pandas as pd
import matplotlib.pyplot as plt
```
2. **加载数据**:使用`pandas.read_excel()`函数读取xlsx文件,假设文件名为'data.xlsx',并且数据在sheet1。
```python
df = pd.read_excel('data.xlsx', sheet_name='sheet1')
```
3. **数据预处理**:检查数据是否有缺失值,并选择合适的列作为x轴和y轴数据。例如,如果有一列名为'Category'表示类别,一列名为'Sales'表示销售额,你可以这么操作:
```python
x_data = df['Category']
y_data = df['Sales']
```
4. **创建柱状图**:使用`plt.bar()`函数创建柱状图,其中第一个参数是x轴数据,第二个参数是y轴数据。
```python
plt.bar(x_data, y_data)
```
5. **美化图表**:添加标题、标签、网格线等元素,使图表更易理解。
```python
plt.title('Sales by Category')
plt.xlabel('Category')
plt.ylabel('Sales')
plt.grid(True)
```
6. **显示图形**:最后,使用`plt.show()`展示绘制完成的柱状图。
```python
plt.show()
```
matplotlib绘制精美柱状图并保存本地
要使用matplotlib绘制精美的柱状图并保存本地,可以按照以下步骤进行:
1. 导入matplotlib库和numpy库
```python
import matplotlib.pyplot as plt
import numpy as np
```
2. 创建数据
```python
x = np.array(['A', 'B', 'C', 'D'])
y = np.array([20, 35, 30, 25])
```
3. 绘制柱状图
```python
fig, ax = plt.subplots()
ax.bar(x, y, color='green')
ax.set_title('Bar Chart')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
```
4. 调整样式
```python
# 设置边框颜色和粗细
for spine in ax.spines.values():
spine.set_edgecolor('#BBBBBB')
spine.set_linewidth(1)
# 设置x轴刻度标签旋转角度和字体大小
plt.xticks(rotation=0, fontsize=10)
# 设置y轴刻度标签字体大小
plt.yticks(fontsize=10)
# 设置标题字体大小
plt.title('Bar Chart', fontsize=12)
# 隐藏顶部和右侧边框
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# 添加网格线
ax.grid(axis='y', linestyle='--')
```
5. 保存图像
```python
plt.savefig('bar_chart.png', dpi=300, bbox_inches='tight')
```
完整代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.array(['A', 'B', 'C', 'D'])
y = np.array([20, 35, 30, 25])
# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(x, y, color='green')
ax.set_title('Bar Chart')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
# 调整样式
for spine in ax.spines.values():
spine.set_edgecolor('#BBBBBB')
spine.set_linewidth(1)
plt.xticks(rotation=0, fontsize=10)
plt.yticks(fontsize=10)
plt.title('Bar Chart', fontsize=12)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.grid(axis='y', linestyle='--')
# 保存图像
plt.savefig('bar_chart.png', dpi=300, bbox_inches='tight')
```
运行完毕后,会在当前路径下生成一个名为 `bar_chart.png` 的图像文件。
阅读全文