python 畫圖 2019-06-28

Matplotlib狸相,numpy

Matplotlib 是一個功能強(qiáng)大的python作圖庫特愿,是一個強(qiáng)大的工具勋拟,可以做出很專業(yè)的圖。主要用到Matplotlib.pyplot 和numpy


7931281-8aa927f71b6854f2.jpg

下圖是基本要素

http://www.reibang.com/p/78ba36dddad8

畫簡單線性圖示意圖

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-2, 6, 50)
y1 = x + 3      # 曲線 y1
y2 = 3 - x      # 曲線 y2
plt.figure()    # 定義一個圖像窗口
plt.plot(x, y1) # 繪制曲線 y1
plt.plot(x, y2) # 繪制曲線 y2
plt.show()

簡單修飾

import matplotlib.pyplot as plt
import numpy as np

# 創(chuàng)建一個點(diǎn)數(shù)為 8 x 6 的窗口, 并設(shè)置分辨率為 80像素/每英寸
plt.figure(figsize=(8, 6), dpi=80)

# 再創(chuàng)建一個規(guī)格為 1 x 1 的子圖
plt.subplot(111)

x = np.linspace(-2, 6, 50)
y1 = x + 3        # 曲線 y1
y2 = 3 - x        # 曲線 y2

# 繪制顏色為藍(lán)色蜘矢、寬度為 1 像素的連續(xù)曲線 y1
plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-")
# 繪制顏色為紫色、寬度為 2 像素的不連續(xù)曲線 y2
plt.plot(x, y2, color="#800080", linewidth=2.0, linestyle="--")

# 設(shè)置橫軸的上下限
plt.xlim(-1, 6)
# 設(shè)置縱軸的上下限
plt.ylim(-2, 10)

plt.show()

設(shè)置標(biāo)簽

# 設(shè)置橫軸標(biāo)簽
plt.xlabel("X")
# 設(shè)置縱軸標(biāo)簽
plt.ylabel("Y")

plt.show()

設(shè)置精準(zhǔn)刻度

# 設(shè)置橫軸精準(zhǔn)刻度
plt.xticks([-1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5])
# 設(shè)置縱軸精準(zhǔn)刻度
plt.yticks([-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

plt.show()
# 設(shè)置橫軸精準(zhǔn)刻度
plt.xticks([-1, 0, 1, 2, 3, 4, 5, 6],
           ["-1m", "0m", "1m", "2m", "3m", "4m", "5m", "6m"])
# 設(shè)置縱軸精準(zhǔn)刻度
plt.yticks([-2, 0, 2, 4, 6, 8, 10],
           ["-2m", "0m", "2m", "4m", "6m", "8m", "10m"])
plt.show()

添加圖例

plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-", label="y1")
# 繪制顏色為紫色综看、寬度為 2 像素的不連續(xù)曲線 y2
plt.plot(x, y2, color="#800080", linewidth=2.0, linestyle="--", label="y2")
plt.legend(loc="upper left")

特殊點(diǎn)標(biāo)記

注釋特殊點(diǎn)位
有時某些數(shù)據(jù)點(diǎn)非常關(guān)鍵品腹,需要突顯出來。我們需要將改點(diǎn)繪制出來红碑,即繪制散點(diǎn)圖舞吭,再對其做注釋。實(shí)現(xiàn)上述需求析珊,我們要用到scatter()和annotate()函數(shù)羡鸥。scatter() 是用于繪制散圖,這里我們只是用其來繪制單個點(diǎn)忠寻。scatter() 用法惧浴,后續(xù)文章會詳細(xì)對其用法做說明。annotate()則是添加標(biāo)注 奕剃。
scatter() 函數(shù)必須傳入兩個參數(shù) x 和 y衷旅。值得注意得是,它們的數(shù)據(jù)類型是列表纵朋。x 代表要標(biāo)注點(diǎn)的橫軸位置柿顶,y 代表要標(biāo)注點(diǎn)的橫軸位置。x 和 y 列表中下標(biāo)相同的數(shù)據(jù)是對應(yīng)的操软。例如 x 為 [3, 4]嘁锯,y 為 [6, 8],這表示會繪制點(diǎn)(3聂薪,6)家乘,(4, 8)藏澳。因此烤低,x 和 y 長度要一樣。
annotate函數(shù)同樣也有兩個必傳參數(shù)笆载,一個是標(biāo)注內(nèi)容,另一個是 xy涯呻。標(biāo)注內(nèi)容是一個字符串凉驻。xy 表示要在哪個位置(點(diǎn))顯示標(biāo)注內(nèi)容。xy 位置地選定复罐。一般是在scatter() 繪制點(diǎn)附近涝登,但不建議重合,這樣會影響美觀效诅。

# 繪制顏色為藍(lán)色胀滚、寬度為 1 像素的連續(xù)曲線 y1
plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-", label="y1")
# 繪制散點(diǎn)(3, 6)
plt.scatter([3], [6], s=30, color="blue")      # s 為點(diǎn)的 size
# 對(3, 6)做標(biāo)注
plt.annotate("(3, 6)",
             xy=(3.3, 5.5),       # 在(3.3, 5.5)上做標(biāo)注
             fontsize=16,         # 設(shè)置字體大小為 16
             xycoords='data')  # xycoords='data' 是說基于數(shù)據(jù)的值來選位置

# 繪制顏色為紫色趟济、寬度為 2 像素的不連續(xù)曲線 y2
plt.plot(x, y2, color="#800080", linewidth=2.0, linestyle="--", label="y2")
# 繪制散點(diǎn)(3, 0)
plt.scatter([3], [0], s=50, color="#800080")
# 對(3, 0)做標(biāo)注
plt.annotate("(3, 0)",
             xy=(3.3, 0),            # 在(3.3, 0)上做標(biāo)注
             fontsize=16,          # 設(shè)置字體大小為 16
             xycoords='data')    # xycoords='data' 是說基于數(shù)據(jù)的值來選位置

點(diǎn)已經(jīng)被標(biāo)注出來了,如果你還想給點(diǎn)添加注釋咽笼。這需要使用text()函數(shù)顷编。text(x,y剑刑,s) 作用是在點(diǎn)(x媳纬,y) 上添加文本 s。matplotlib 目前好像對中午支持不是很友好施掏, 中文均顯示為亂碼钮惠。

# 繪制散點(diǎn)(3, 0)
plt.scatter([3], [0], s=50, color="#800080")
# 對(3, 0)做標(biāo)注
plt.annotate("(3, 0)", xy=(3.3, 0))
plt.text(4, -0.5, "this point very important",
         fontdict={'size': 12, 'color': 'green'})  # fontdict設(shè)置文本字體
image.png

http://www.reibang.com/p/78ba36dddad8

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市七芭,隨后出現(xiàn)的幾起案子素挽,更是在濱河造成了極大的恐慌,老刑警劉巖狸驳,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件预明,死亡現(xiàn)場離奇詭異,居然都是意外死亡锌历,警方通過查閱死者的電腦和手機(jī)贮庞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來究西,“玉大人窗慎,你說我怎么就攤上這事÷辈模” “怎么了遮斥?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扇丛。 經(jīng)常有香客問我术吗,道長,這世上最難降的妖魔是什么帆精? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任较屿,我火速辦了婚禮,結(jié)果婚禮上卓练,老公的妹妹穿的比我還像新娘隘蝎。我一直安慰自己,他們只是感情好襟企,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布嘱么。 她就那樣靜靜地躺著,像睡著了一般顽悼。 火紅的嫁衣襯著肌膚如雪曼振。 梳的紋絲不亂的頭發(fā)上几迄,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音冰评,去河邊找鬼映胁。 笑死,一個胖子當(dāng)著我的面吹牛集索,可吹牛的內(nèi)容都是我干的屿愚。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼务荆,長吁一口氣:“原來是場噩夢啊……” “哼妆距!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起函匕,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤娱据,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盅惜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體中剩,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年抒寂,在試婚紗的時候發(fā)現(xiàn)自己被綠了结啼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡屈芜,死狀恐怖郊愧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情井佑,我是刑警寧澤属铁,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站躬翁,受9級特大地震影響焦蘑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盒发,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一例嘱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宁舰,春花似錦蝶防、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殷费。三九已至印荔,卻和暖如春低葫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仍律。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工嘿悬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人水泉。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓善涨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親草则。 傳聞我的和親對象是個殘疾皇子钢拧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容