600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python运行程序出现红色空白图片_Python-解决使用 plt.savefig 保存图片时一片空白...

python运行程序出现红色空白图片_Python-解决使用 plt.savefig 保存图片时一片空白...

时间:2018-09-21 18:12:46

相关推荐

python运行程序出现红色空白图片_Python-解决使用 plt.savefig 保存图片时一片空白...

当使用如下代码保存使用plt.savefig保存生成的图片时,结果打开生成的图片却是一片空白。

例如:

# 导入可视化工具包

import matplotlib.pyplot as plt

%matplotlib inline

# 颜色和标签列表

colors_list = ['red', 'blue', 'green']

labels_list = ['setosa', 'versicolor', 'virginica']

# 需要将DataFrame转成ndarray,才能进行 df[pre==i,0]

df = df

for i in range(3):

plt.scatter(df[pre==i,0], df[pre== i,1], s=100,c=colors_list[i],label = labels_list[i])

# 聚类中心点

plt.scatter(center[:,0],center[:,1], s=300,c='black',label='Centroids')

plt.legend()

plt.xlabel('sepal length')

plt.ylabel('petal length')

plt.show()

plt.savefig('F:\\Apython\\works-wpp\\数据挖掘基础\\k-means.png')

问题原因

其实产生这个现象的原因很简单:在plt.show()后调用了plt.savefig(),在plt.show()后实际上已经创建了一个新的空白的图片(坐标轴),这时候你再plt.savefig()就会保存这个新生成的空白图片。

解决

知道了问题产生的原因之后,就可以解决问题了,首先解决办法有两种:

1. 在plt.show()之前调用plt.savefig();

# 导入可视化工具包

import matplotlib.pyplot as plt

%matplotlib inline

# 颜色和标签列表

colors_list = ['red', 'blue', 'green']

labels_list = ['setosa', 'versicolor', 'virginica']

# 需要将DataFrame转成ndarray,才能进行 df[pre==i,0]

df = df

for i in range(3):

plt.scatter(df[pre==i,0], df[pre== i,1], s=100,c=colors_list[i],label = labels_list[i])

# 聚类中心点

plt.scatter(center[:,0],center[:,1], s=300,c='black',label='Centroids')

plt.legend()

plt.xlabel('sepal length')

plt.ylabel('petal length')

plt.savefig('F:\\Apython\\works-wpp\\数据挖掘基础\\k-means.png')

plt.show()

2. 画图的时候获取当前图像(这一点非常类似于 Matlab 的句柄的概念):

# 导入可视化工具包

import matplotlib.pyplot as plt

%matplotlib inline

# 颜色和标签列表

colors_list = ['red', 'blue', 'green']

labels_list = ['setosa', 'versicolor', 'virginica']

# 需要将DataFrame转成ndarray,才能进行 df[pre==i,0]

df = df

for i in range(3):

plt.scatter(df[pre==i,0], df[pre== i,1], s=100,c=colors_list[i],label = labels_list[i])

# 聚类中心点

plt.scatter(center[:,0],center[:,1], s=300,c='black',label='Centroids')

plt.legend()

plt.xlabel('sepal length')

plt.ylabel('petal length')

fig = plt.gcf()

plt.show()

fig1.savefig('F:\\Apython\\works-wpp\\数据挖掘基础\\k-means.png',dpi=100)

问题就解决了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。