python使用plt将表格数据做成带有格网线的格网图
时间: 2024-02-21 18:57:31 浏览: 21
你可以使用Matplotlib中的pyplot模块来创建带有格网线的格网图。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
# 表格数据
data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
# 创建一个子图
fig, ax = plt.subplots()
# 绘制表格
ax.axis('off')
ax.table(cellText=data, colLabels=['Col1', 'Col2', 'Col3', 'Col4'], loc='center')
# 添加格网线
for i in range(len(data)):
for j in range(len(data[0])):
ax.add_artist(plt.Rectangle((j, i), 1, 1, fill=False, edgecolor='black', lw=1))
# 显示图形
plt.show()
```
在这个例子中,我们使用`ax.table()`方法来绘制表格,使用`ax.add_artist()`方法来添加格网线。`Rectangle`对象代表一个方块,我们可以通过指定左下角的坐标、宽度、高度、填充状态、边框颜色、边框宽度来创建它。最后,我们调用`plt.show()`方法显示图形。
相关问题
python使用plt将代表全球的1°×1°excel数据画成格网图,并添加刻度以及格网线
你可以使用Matplotlib中的pyplot模块来创建带有刻度和格网线的格网图。下面是一个简单的例子:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 获取经度、纬度和数值的列表
lons = data['lon'].values
lats = data['lat'].values
values = data['value'].values
# 创建一个子图
fig, ax = plt.subplots()
# 绘制等值线图
levels = np.arange(0, 25, 5)
cs = ax.tricontourf(lons, lats, values, levels=levels, cmap='jet')
# 添加刻度
cbar = fig.colorbar(cs, ax=ax, orientation='vertical', shrink=0.5)
cbar.ax.set_ylabel('Value')
# 添加格网线
ax.set_xticks(np.arange(-180, 181, 30))
ax.set_yticks(np.arange(-90, 91, 30))
ax.xaxis.grid(True, linestyle='-', color='gray', alpha=0.5)
ax.yaxis.grid(True, linestyle='-', color='gray', alpha=0.5)
# 显示图形
plt.show()
```
在这个例子中,我们使用`tricontourf()`方法绘制等值线图,使用`colorbar()`方法添加刻度,使用`set_xticks()`和`set_yticks()`方法设置刻度值,使用`xaxis.grid()`和`yaxis.grid()`方法添加格网线。
python使用plt设置格网线宽度
可以使用matplotlib库中的`grid()`方法来设置格网线的宽度。需要注意的是,这里使用的是函数`grid()`,而不是`pcolor()`。
```python
import matplotlib.pyplot as plt
# 绘制格网图
plt.pcolor(df.values)
# 设置刻度值
plt.xticks(range(0, df.shape[1], 10), df.columns[::10], rotation='vertical')
plt.yticks(range(0, df.shape[0], 10), df.index[::10])
# 显示格网线,并设置线宽为2
plt.grid(True, linewidth=2)
# 显示图形
plt.show()
```
其中,`linewidth`参数用于设置格网线的宽度。可以根据需要调整其值。