我正在使用UCI机器学习存储库中的鲍鱼数据集。我想使用matplotlib和imshow显示相关的热图。
我第一次尝试,效果很好。绘制并标记了所有数字变量,请参见此处:
fig = plt.figure(figsize=(15,8))
ax1 = fig.add_subplot(111)
plt.imshow(df.corr(), cmap='hot', interpolation='nearest')
plt.colorbar()
labels = df.columns.tolist()
ax1.set_xticklabels(labels,rotation=90, fontsize=10)
ax1.set_yticklabels(labels,fontsize=10)
plt.show()
Run Code Online (Sandbox Code Playgroud)
后来,我在分类变量上使用了get_dummies(),如下所示:
df = pd.get_dummies(df, columns = ['sex'])
Run Code Online (Sandbox Code Playgroud)
因此,如果我重用以前的代码来生成一个不错的热图,那应该没事吧?错误!
所以我的问题是,我的标签在哪里去了,我该如何找回它们?
谢谢!
也许我误解了。如果我在 ImageDataGenerator 中实现 channel_shift_range,输出应该有“乱码”的颜色值,对吗?我想用它来使我的模型对颜色变化更加稳健。
但是,当我测试它时,我没有看到任何效果。我用错了吗?这是我的代码:
from keras.preprocessing.image import ImageDataGenerator
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
path = '/mnt/Project/Imaging/samples'
datagen = ImageDataGenerator(channel_shift_range=0.9)
genObject = datagen.flow_from_directory(path,
batch_size=1)
augs = []
i = 0
for batch in genObject:
augs.append(batch)
i += 1
if i > 10:
break
for item in augs:
plt.imshow(item[0][0].astype('uint8'))
plt.show()
Run Code Online (Sandbox Code Playgroud)
环境:
Jupyter Lab
Python 3.6.6 Keras
==2.2.4
Keras-Applications==1.0.7
Keras
-Preprocessing==1.0.9
tensorboard==1.9.0
tensorflow-gpu==1.9.0
在此先感谢您的帮助!
python-3.x ×2
correlation ×1
heatmap ×1
imshow ×1
keras ×1
matplotlib ×1
tensorflow ×1
tf.keras ×1