1. 程式人生 > >6,python實現----繪製各類圖表

6,python實現----繪製各類圖表

from matplotlib import pyplot
import numpy


def zhexiantu():
    '''折線圖'''
    # 建立資料列表
    num_list = [1, 6, 8, 3, 4, 2, 7, 6]
    num_list2 = [7, 5, 8, 3, 6, 2, 8, 1]
    # 將資料新增到圖表中
    # 調節線條粗細和顏色
    pyplot.plot(num_list, num_list2, linewidth=6, c='red')
    # 設定x,y標籤和大小
    pyplot.xlabel('X', fontsize=16)
    pyplot.ylabel('Y', fontsize=16)
    # 設定刻度數字的大小
    pyplot.tick_params(axis='bot', lablesize=10)
    # 設定圖表大標題
    pyplot.title('number')
    # 顯示圖表
    pyplot.show()


# 柱狀圖
def zhifangtu():
    '''直方圖'''

    mu = 100

    sigma = 20

    x = mu + sigma * numpy.random.randn(20000)  # 樣本數量

    pyplot.hist(x, bins=100, color='green', normed=True)  # bins顯示有幾個直方,normed是否對資料進行標準化

    pyplot.show()


def zhuzhuantu():
    '''柱狀圖'''

    y = [20, 10, 30, 25, 15]

    index = numpy.arange(5)
    print(index, type(index))
    pyplot.bar(left=index, height=y, color='green', width=0.5)

    pyplot.show()


def sandiantu():
    '''散點圖'''

    x = numpy.random.randn(1000)

    y = x + numpy.random.randn(1000) * 0.5

    pyplot.scatter(x, y, s=5, marker='<')  # s表示面積,marker表示圖形

    pyplot.show()


def bingzhuangtu():
    '''餅狀圖'''
    # 分類名
    labels = 'A', 'B', 'C', 'D'
    # 分類資料
    fracs = [15, 30, 45, 10]

    pyplot.axes(aspect=1)  # 使x y軸比例相同

    explode = [0, 0.05, 0, 0]  # 突出某一部分割槽域

    pyplot.pie(x=fracs, labels=labels, autopct='%.0f%%', explode=explode)  # autopct顯示百分比

    pyplot.show()


def xiangxingtu():
    '''箱形圖'''
    numpy.random.seed(100)
    data = numpy.random.normal(size=(1000, 4), loc=0, scale=1)

    labels = ['A', 'B', 'C', 'D']

    pyplot.boxplot(data, labels=labels)

    pyplot.show()


def main():
    # 折線圖
    # zhexiantu()
    # 直方圖
    # zhifangtu()
    # 柱狀圖
    # zhuzhuantu()
    # 散點圖
    # sandiantu()
    # 餅狀圖
    # bingzhuangtu()
    # 箱形圖
    xiangxingtu()


if __name__ == '__main__':
    main()