【Python】PyCharm中matplotlib.pyplot.imshow()無法繪圖
阿新 • • 發佈:2018-12-15
問題描述
在利用Anaconda3 + PyCharm 2018 實現神經網路的實踐中,涉及到一個根據畫素陣列繪製圖像的實踐,如下所示(這裡只需要關心image_array
即可,對源資料的預處理可忽略):
# coding=utf-8
# author: BebDong
# 10/23/18
import numpy
import matplotlib.pyplot as plt
# 開啟並讀取檔案
data_file = open("mnist_dataset/mnist_train_100.csv")
data_list = data_file.readlines()
data_file. close()
# image_array是一個28*28的畫素陣列
all_pixels = data_list[0].split(',')
image_array = numpy.asfarray(all_pixels[1:]).reshape((28, 28))
plt.imshow(image_array, cmap='gray', interpolation='None')
pylab.show()
當執行時,控制檯無報錯資訊,正常執行結束退出(exit code 0
),在SciView出處無繪製出的指定影象。
解決
在網上找了一些資料,大部分解決方案是“呼叫show()
經過一番查詢,發現需要引入另外一個叫做
pylab
的包即可。(我想原因得靠自己查閱官方文件了)
# coding=utf-8
# author: BebDong
# 10/23/18
import numpy
import matplotlib.pyplot as plt
# 直接使用plt.imshow無法顯示圖片,需要匯入pylab包
import pylab
# 開啟並讀取檔案
data_file = open("mnist_dataset/mnist_train_100.csv")
data_list = data_file.readlines()
data_file. close()
# 拆分繪製28*28圖形
all_pixels = data_list[0].split(',')
image_array = numpy.asfarray(all_pixels[1:]).reshape((28, 28))
plt.imshow(image_array, cmap='gray', interpolation='None')
pylab.show()
吐槽和思考
其實程式猿經常會遇到一些技術問題,最直接的方法就是上網查閱資料,看看有沒有其他人遇到過相同問題,如何解決,這比翻閱官方文件顯然效率高得多。
就個人感覺來說,目前國內的環境不容樂觀,有時能看到好幾篇一字不差的博文,竟然標註都是原創文章。這還算好,畢竟是原封不動的抄襲原文。更悲觀的是,有些博文為了讓其**“看起來”**不那麼像抄襲,改得牛頭馬面,毫無邏輯可言。試問,您真的懂了原文的意思了嗎?既然你都不懂,為何要加以“原創”的標籤來展示和分享給他人呢?
個人認為,原創不一定非要100%是自己的東西。你看了某個文章,學習了某個技術,有一些自己的感悟和想法,用自己的語言將它描述出來也可以稱之為原創。
最後,希望看到未來國內類似知識部落格對知識多一些尊重。
PS:寫給剛開始學程式設計的讀者
國內的部落格或文章存在上述弊端,但仍然不乏一些精品原文,值得參考,並不全是糟粕,多一些時間尋找。另外,可以使用google、Stack Overflow等工具,這樣得出的結果會更加具有參考價值。