Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Seaborn热图剪裁y轴刻度标签_Python_Seaborn - Fatal编程技术网

Python Seaborn热图剪裁y轴刻度标签

Python Seaborn热图剪裁y轴刻度标签,python,seaborn,Python,Seaborn,我正在尝试使用数据框创建热图,数据框中的行如下: у 7.14e-02 4.29e-01 5.00e-01 ф 0.00e+00 1.00e+00 0.00e+00 х 0.00e+00 1.00e+00 0.00e+00 ц 0.00e+00 1.00e+00 0.00e+00 ч 0.00e+00 9.75e-01 2.50e-02 ш 0.00e+00 1.00e+00 0.00e+00 щ 0.00e+00

我正在尝试使用数据框创建热图,数据框中的行如下:

у     7.14e-02  4.29e-01  5.00e-01
ф     0.00e+00  1.00e+00  0.00e+00
х     0.00e+00  1.00e+00  0.00e+00
ц     0.00e+00  1.00e+00  0.00e+00
ч     0.00e+00  9.75e-01  2.50e-02
ш     0.00e+00  1.00e+00  0.00e+00
щ     0.00e+00  1.00e+00  0.00e+00
然而,当我试图从这些数据创建一个热图时,我最终得到了一个y轴,看起来是这样的(请注意像\、ф和ц这样的字母,其底部/右侧被剪掉)

下面是我用来初始化它的代码:

fig, ax = plt.subplots(figsize=(15, 15)
plot = sns.heatmap(df_result, annot=True, fmt=".2f")

编辑:我已经测试过用拉丁字母“y”替换西里尔字母“П”,它不再被剪裁。此问题是否因西里尔文字符而异?

旋转Ytick将有助于剪辑

degrees = 90
plt.yticks(rotation=degrees)
或者你可以给yaxis添加一些填充物

n = 15
ax.tick_params(axis='y', which='major', pad=n)

可以找到使用matplotlib填充的文档。

在csv中读取时,问题可能在于编码

以下是csv:

name,value1,value2,value3
у, 7.14e-02, 4.29e-01, 5.00e-01
ф, 0.00e+00, 1.00e+00, 0.00e+00
х, 0.00e+00, 1.00e+00, 0.00e+00
ц, 0.00e+00, 1.00e+00, 0.00e+00
ч, 0.00e+00, 9.75e-01, 2.50e-02
ш, 0.00e+00, 1.00e+00, 0.00e+00
щ, 0.00e+00, 1.00e+00, 0.00e+00
在csv中读取为:

df = pd.read_csv("data.csv",encoding='utf-8')
将名称列表另存为y_标签和图形:

y_labels = df['name'].tolist()

fig, ax = plt.subplots(figsize = (15, 15))
ax  = sns.heatmap(df[['value1','value2','value3']],
yticklabels =  y_labels)
y轴标签不会被切断。

即使有更多的填充和旋转,它仍然被剪裁成相同的量。我想知道seaborn/matplotlib是否特别对西里尔文字有问题。