import numpy as np import scipy.stats as ss import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from seaborn import FacetGrid df=pd.read_excel("./tmp_apply2.xlsx") sns.set_context(font_scale=10) plv_tb=pd.pivot_table(df, values="sale", index=["FactoryName","JiJXH"], columns=["Xian"], aggfunc=np.mean) plv_tb["Xian"] = df["Xian"].astype(str) g = FacetGrid(plv_tb, col="Xian", col_wrap=None, sharex=False, sharey=False, height=10, aspect=0.8) sns.heatmap(g, vmin=plv_tb.min().min(), vmax=plv_tb.max().max(), cmap=sns.color_palette("RdYlGn", n_colors=10)) plt.show()提示 Number of columns must be a positive integer, not 0,怎么修改
时间: 2023-12-10 18:39:04 浏览: 123
根据您提供的代码,出现错误的原因可能是 `col_wrap=None` 参数导致的。将其修改为 `col_wrap=1` 即可解决问题,如下所示:
```
g = FacetGrid(plv_tb, col="Xian", col_wrap=1, sharex=False, sharey=False, height=10, aspect=0.8)
```
这样修改后,每个子图都会单独占据一列。
相关问题
import numpy as np import scipy.stats as ss import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from seaborn import FacetGrid df=pd.read_excel("./tmp_apply2.xlsx") sns.set_context(font_scale=10) plv_tb=pd.pivot_table(df, values="sale", index=["FactoryName","JiJXH","Xian"], aggfunc=np.mean) g = FacetGrid(plv_tb, col_wrap=0, sharex=False, sharey=False, height=10, aspect=0.8) sns.heatmap(g, vmin=plv_tb.min().min(), vmax=plv_tb.max().max(), cmap=sns.color_palette("RdYlGn", n_colors=10)) plt.show()怎样按照Xian展开多行,绘制清晰色阶图,如何修改
你可以将 `Xian` 添加到 `col` 参数中,这样就可以按照 `Xian` 展开多行,然后在 `heatmap()` 函数中添加 `annot=True` 参数来显示每个单元格的值,同时可以通过 `fmt` 参数设置显示格式。例如:
```
g = FacetGrid(plv_tb, col="Xian", col_wrap=3, sharex=False, sharey=False, height=6, aspect=0.8)
sns.heatmap(g.map(sns.color_palette("RdYlGn"), "sale", annot=True, fmt=".2f", linewidths=.5, linecolor='gray', cbar=False))
plt.show()
```
这里将 `col_wrap` 设置为 3,表示每行最多展示 3 个子图;`annot=True` 表示显示每个单元格的值;`fmt=".2f"` 表示显示小数点后两位;`linewidths=.5` 和 `linecolor='gray'` 表示设置单元格之间的分割线;`cbar=False` 表示不显示颜色条。你也可以根据需要进一步修改这些参数。
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sb from scipy.io import loadmat raw_data = loadmat('ex6data1.mat') raw_data
这段代码使用了多个Python库,包括`numpy`、`pandas`、`matplotlib`、`seaborn`和`scipy`。其中,`loadmat()`函数是`scipy.io`库中的函数,它可以将MATLAB格式的文件加载到Python中。这段代码中,它加载了名为`ex6data1.mat`的文件,并将其存储在`raw_data`变量中。
在加载数据之后,可以使用`type()`函数来检查数据类型,以确保数据已正确加载。例如,在Python控制台中,您可以键入以下内容:
```python
print(type(raw_data))
```
输出应该为`<class 'dict'>`,这意味着数据已经成功加载并存储在字典对象中。要访问字典中存储的数据,您可以使用相应的键。例如,要访问键为`'X'`的数据,请键入以下内容:
```python
X = raw_data['X']
```
这将把`X`变量设置为存储在`raw_data`字典中键为`'X'`的值。同样,要访问键为`'y'`的数据,请输入以下内容:
```python
y = raw_data['y']
```
这将把`y`变量设置为存储在`raw_data`字典中键为`'y'`的值。
阅读全文