有FactoryName、JiJXH 、Shi、sale_avg多行数据表,如何按照FactoryName、JiJXH 为行索引,Shi为列索引,制作每行sale_avg色阶图,用python怎么做阶
时间: 2023-07-10 11:15:45 浏览: 229
要制作每行sale_avg的色阶图,可以使用Python中的pandas和matplotlib库进行操作。具体步骤如下:
1. 首先,读取数据表并将FactoryName和JiJXH作为行索引,Shi作为列索引,可以使用pandas中的pivot函数实现:
```
import pandas as pd
# 读取数据表
df = pd.read_csv('data.csv')
# 将FactoryName和JiJXH作为行索引,Shi作为列索引
df_pivot = df.pivot(index=['FactoryName', 'JiJXH'], columns='Shi', values='sale_avg')
```
2. 接下来,根据每行sale_avg的值生成对应的色阶,可以使用matplotlib中的colormap函数实现:
```
import matplotlib.pyplot as plt
# 生成色阶
colormap = plt.cm.Reds
```
3. 最后,将每行sale_avg的值映射到对应的色阶并绘制色阶图,可以使用matplotlib中的imshow函数实现:
```
# 将每行sale_avg的值映射到对应的色阶
plt.imshow(df_pivot, cmap=colormap, aspect='auto')
# 隐藏坐标轴
plt.axis('off')
# 显示色阶图
plt.show()
```
完整代码如下:
```
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据表
df = pd.read_csv('data.csv')
# 将FactoryName和JiJXH作为行索引,Shi作为列索引
df_pivot = df.pivot(index=['FactoryName', 'JiJXH'], columns='Shi', values='sale_avg')
# 生成色阶
colormap = plt.cm.Reds
# 将每行sale_avg的值映射到对应的色阶
plt.imshow(df_pivot, cmap=colormap, aspect='auto')
# 隐藏坐标轴
plt.axis('off')
# 显示色阶图
plt.show()
```
阅读全文