解決Matplotlib圖表不能在Pycharm中顯示的問題
初學(xué)者可能都會(huì)遇到一個(gè)小問題就是:在用IPython的時(shí)候,可以使用類似
%matplotlib inline
的Magic Function(魔法函數(shù))來顯示Matplotlib圖表,但是用Pycharm編寫項(xiàng)目的時(shí)候是不能寫magic函數(shù)的,會(huì)出現(xiàn)編譯錯(cuò)誤:

但是不加這行,運(yùn)行后,Matplotlib圖表就不會(huì)正常顯示。程序運(yùn)行后也不會(huì)報(bào)錯(cuò),只會(huì)在控制臺(tái)輸出:
Process finished with exit code 0
后了事。
因此,我們的關(guān)注點(diǎn)似乎要移動(dòng)到Magic Function身上了,什么是Magic函數(shù)呢?
官方給出的定義是:IPython有一組預(yù)先定義好的所謂的魔法函數(shù)(Magic Functions),你可以通過命令行的語法形式來訪問它們??梢姟?matplotlib inline”就是模仿命令行來訪問magic函數(shù)的在IPython中獨(dú)有的形式。
magic函數(shù)分兩種:一種是面向行的,另一種是面向單元型的。
行magic函數(shù)是用前綴“%”標(biāo)注的,很像我們在系統(tǒng)中使用命令行時(shí)的形式,例如在Mac中就是你的用戶名后面跟著“$”。“%”后面就是magic函數(shù)的參數(shù)了,但是它的參數(shù)是沒有被寫在括號(hào)或者引號(hào)中來傳值的。
單元型magic函數(shù)是由兩個(gè)“%%”做前綴的,它的參數(shù)不僅是當(dāng)前“%%”行后面的內(nèi)容,也包括了在當(dāng)前行以下的行。比如:計(jì)算代碼執(zhí)行時(shí)間的timeit函數(shù),我們可以這樣寫
In [2]: %%timeit x = range(10000) ...: min(x) 1000 loops, best of 3: 223 us per loop
既然是IPython的內(nèi)置magic函數(shù),那么在Pycharm中是不會(huì)支持的。但是我們可以在matplotlib中的pyplot身上下功夫,pyplot不會(huì)不提供展示圖像的功能。
所以代碼可以這樣寫:
import numpy as np from matplotlib import pyplot as plt from skimage import data random_image = np.random.random([500, 500]) print(random_image) plt.imshow(random_image, cmap='gray') plt.colorbar() plt.show()
最后加入了plt.show(),這樣就可以將我們生成的圖像顯示出來了。
另外,IPython的內(nèi)置magic函數(shù)包括三種:
1. 伴隨你的代碼使用的函數(shù):%run, %edit, %save, %macro, %recall等;
2. 可以影響到腳本本身的函數(shù):%colors, %xmode, %autoindent, %automagic等;
3. 其他的函數(shù): %reset, %timeit, %%writefile, %load, %paste。
謝謝大家能看到這里。
以上這篇解決Matplotlib圖表不能在Pycharm中顯示的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux上Miniconda的安裝的實(shí)現(xiàn)步驟
Miniconda是一個(gè)輕量級(jí)、免費(fèi)且開源的跨平臺(tái)軟件包管理系統(tǒng),本文主要介紹了Linux上Miniconda的安裝的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
python使用正則表達(dá)式匹配txt特定字符串(有換行)
這篇文章主要給大家介紹了關(guān)于python使用正則表達(dá)式匹配txt特定字符串的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
一文教你Python如何使用sqlparse玩轉(zhuǎn)SQL解析
sqlparse?是一個(gè)?Python?第三方庫,專門用于解析和格式化?SQL?語句,它提供了強(qiáng)大的?SQL?解析功能,下面小編就來為大家詳細(xì)介紹一下它的具體使用吧2025-02-02
pandas創(chuàng)建series的三種方法小結(jié)
這篇文章主要介紹了pandas創(chuàng)建series的三種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Python 詳解爬取并統(tǒng)計(jì)CSDN全站熱榜標(biāo)題關(guān)鍵詞詞頻流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python爬取CSDN全站綜合熱榜標(biāo)題,順便統(tǒng)計(jì)關(guān)鍵詞詞頻,大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
python設(shè)置環(huán)境變量的幾種方法總結(jié)
這篇文章主要介紹了在Python中設(shè)置環(huán)境變量可以通過多種方式實(shí)現(xiàn),包括使用os.environ、os.putenv、setuptools以及在操作系統(tǒng)級(jí)別設(shè)置,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01

