摘要:圖表是比干巴巴的表格更直觀的表達,簡潔有力。當(dāng)我們想關(guān)注比數(shù)值本身更多的信息像數(shù)值的變化對比或異常,圖表就非常有用了。把數(shù)值轉(zhuǎn)化為圖片要依賴第三方庫的幫忙,在之中最好的圖表庫叫。
圖表是比干巴巴的表格更直觀的表達,簡潔、有力。工作中經(jīng)常遇到的場景是,有一些數(shù)值需要定時的監(jiān)控,比如服務(wù)器的連接數(shù)、活躍用戶數(shù)、點擊某個按鈕的人數(shù),并且通過郵件或者網(wǎng)頁展示出來。當(dāng)我們想關(guān)注比數(shù)值本身更多的信息(像數(shù)值的變化、對比或異常),圖表就非常有用了。把數(shù)值轉(zhuǎn)化為圖片要依賴第三方庫的幫忙,在Python之中最好的圖表庫叫matplotlib。(一直覺得,Python最大的優(yōu)勢就是豐富的第三方庫,讓你能輕易實現(xiàn)各種需求)
matplotlib,顧名思義就是提供了一整套和matlab相似的API,它的文檔相當(dāng)完備,示例頁面提供了上百個圖表的入門代碼,可以說只有你想不到的,沒有它做不到的。
舉個稍復(fù)雜的例子,小明和小紅兩個同學(xué)各有語文、數(shù)學(xué)、英語的課程成績,用一個雙柱形圖輸出各項成績的對比:
#!/usr/bin/env python # coding: utf-8 import matplotlib as mpl mpl.use("Agg") import matplotlib.pyplot as plt import numpy as np # 必須配置中文字體,否則會顯示成方塊 # 注意所有希望圖表顯示的中文必須為unicode格式 custom_font = mpl.font_manager.FontProperties(fname="/Library/Fonts/華文細黑.ttf") font_size = 10 # 字體大小 fig_size = (8, 6) # 圖表大小 names = (u"小明", u"小紅") # 姓名 subjects = (u"語文", u"數(shù)學(xué)", u"英語") # 科目 scores = ((65, 90, 75), (85, 80, 90)) # 成績 # 更新字體大小 mpl.rcParams["font.size"] = font_size # 更新圖表大小 mpl.rcParams["figure.figsize"] = fig_size # 設(shè)置柱形圖寬度 bar_width = 0.35 index = np.arange(len(scores[0])) # 繪制「小明」的成績 rects1 = plt.bar(index, scores[0], bar_width, color="#0072BC", label=names[0]) # 繪制「小紅」的成績 rects2 = plt.bar(index + bar_width, scores[1], bar_width, color="#ED1C24", label=names[1]) # X軸標題 plt.xticks(index + bar_width, subjects, fontproperties=custom_font) # Y軸范圍 plt.ylim(ymax=100, ymin=0) # 圖表標題 plt.title(u"企鵝班同學(xué)成績對比", fontproperties=custom_font) # 圖例顯示在圖表下方 plt.legend(loc="upper center", bbox_to_anchor=(0.5, -0.03), fancybox=True, ncol=5, prop=custom_font) # 添加數(shù)據(jù)標簽 def add_labels(rects): for rect in rects: height = rect.get_height() plt.text(rect.get_x() + rect.get_width() / 2, height, height, ha="center", va="bottom") # 柱形圖邊緣用白色填充,純粹為了美觀 rect.set_edgecolor("white") add_labels(rects1) add_labels(rects2) # 圖表輸出到本地 plt.savefig("scores_par.png")
最終圖表顯示如下:
小結(jié)一下,從上面的代碼片段可以了解到:matplotlib是一個自由度非常高的圖表庫,能夠?qū)崿F(xiàn)從顏色、字體等基礎(chǔ)屬性到圖例、網(wǎng)格等圖表屬性的定制輸出。
來自:建造者說
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37670.html
摘要:可選的值有,和。布局類型或即水平布局和垂直布局默認是設(shè)定圖例在圖表區(qū)中的水平對齊方式,合法值有,和。垂直位置可以通過選項做進一步設(shè)定。 showImg(https://segmentfault.com/img/remote/1460000012009745?w=1240&h=653); showImg(https://segmentfault.com/img/remote/146000...
摘要:可選的值有,和。布局類型或即水平布局和垂直布局默認是設(shè)定圖例在圖表區(qū)中的水平對齊方式,合法值有,和。垂直位置可以通過選項做進一步設(shè)定。 showImg(https://segmentfault.com/img/remote/1460000012009745?w=1240&h=653); showImg(https://segmentfault.com/img/remote/146000...
摘要:餅狀圖將數(shù)據(jù)用切割成份的圓來展示。至于半徑,我們用寬度的一半與高度的一半的較小值,因為我們不想讓餅狀圖超出。結(jié)果看起來如下這樣繪制圓環(huán)圖我們已經(jīng)看到如何創(chuàng)建餅狀圖。怎樣畫洞呢我們可以畫一個白色的圓在餅狀圖上。 showImg(https://segmentfault.com/img/bVObDh?w=850&h=362); 原文:https://code.tutsplus.com/zh...
閱讀 867·2021-10-25 09:45
閱讀 3283·2021-09-22 14:58
閱讀 3843·2021-08-31 09:43
閱讀 914·2019-08-30 15:55
閱讀 916·2019-08-29 13:51
閱讀 1224·2019-08-29 13:02
閱讀 3482·2019-08-29 12:52
閱讀 1960·2019-08-26 13:27