Python數據可視化matplotlib.pyplot

1.安裝matplotlib

pip install matplotlib

2.繪製簡單圖形

import matplotlib.pyplot as plt

#圖形輸入值
input_values = [1,2,3,4,5]
#圖形輸出值
squares = [1,4,9,16,25]

#plot根據列表繪製出有意義的圖形,linewidth是圖形線寬,可省略
plt.plot(input_values,squares,linewidth=5)
#設置圖標標題
plt.title("Square Numbers",fontsize = 24)
#設置座標軸標籤
plt.xlabel("Value",fontsize = 14)
plt.ylabel("Square of Value",fontsize = 14)
#設置刻度標記的大小
plt.tick_params(axis='both',labelsize = 14)
#打開matplotlib查看器,並顯示繪製圖形
plt.show()

圖片描述

3.繪製點

import matplotlib.pyplot as plt

#繪製散點圖(傳如一對x和y座標,在指定位置繪製一個點)
plt.scatter(2,4)
#設置輸出樣式
plt.scatter(3,5,s=200)
plt.show()

圖片描述

4.繪製一系列的點

import matplotlib.pyplot as plt

x_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]

plt.scatter(x_values,y_values,s=100)

plt.show()

圖片描述

5.自動計算數據

import matplotlib.pyplot as plt

x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]

plt.scatter(x_values,y_values,s=100)

#設置每個座標軸的取值範圍(x軸取值,y軸取值)
plt.axis([0,1100,0,1100000])
plt.show()

圖片描述

6.刪除數據點的輪廓

import matplotlib.pyplot as plt

x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]

#matplotlib允許你給散點圖中的各個點指定顏色。默認爲藍色點和黑色輪廓,在散點圖包含的 數據點不多時效果很好。但繪製很多點時,黑色輪廓可能會粘連在一起。
#edgecolor='none'刪除數據點的輪廓
plt.scatter(x_values,y_values,edgecolor='none', s=40)


#設置每個座標軸的取值範圍
plt.axis([0,1100,0,1100000])
plt.show()

圖片描述

7.自定義顏色c=''直接傳顏色或元組都可以

import matplotlib.pyplot as plt

x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]

#matplotlib允許你給散點圖中的各個點指定顏色。默認爲藍色點和黑色輪廓,在散點圖包含的 數據點不多時效果很好。但繪製很多點時,黑色輪廓可能會粘連在一起。
#edgecolor='none'刪除數據點的輪廓
plt.scatter(x_values, y_values,c='red', edgecolor='none', s=40)
# plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor='none', s=40)


#設置每個座標軸的取值範圍
plt.axis([0,1100,0,1100000])
plt.show()

圖片描述

8.使用顏色映射

import matplotlib.pyplot as plt

x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]

#matplotlib允許你給散點圖中的各個點指定顏色。默認爲藍色點和黑色輪廓,在散點圖包含的 數據點不多時效果很好。但繪製很多點時,黑色輪廓可能會粘連在一起。
#edgecolor='none'刪除數據點的輪廓
plt.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Blues, edgecolor='none', s=40)


#設置每個座標軸的取值範圍
plt.axis([0,1100,0,1100000])
plt.show()

圖片描述

9.自動保存圖表

import matplotlib.pyplot as plt

x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]

#matplotlib允許你給散點圖中的各個點指定顏色。默認爲藍色點和黑色輪廓,在散點圖包含的 數據點不多時效果很好。但繪製很多點時,黑色輪廓可能會粘連在一起。
#edgecolor='none'刪除數據點的輪廓
plt.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Blues, edgecolor='none', s=40)


#設置每個座標軸的取值範圍
plt.axis([0,1100,0,1100000])
# plt.show()
#參數1指定要以什麼樣的文件名保存圖表,保存和代碼的同目錄下,第二個參數表示要將多餘的空白區域剪掉,要保留空白區域,可省略第二個參數
plt.savefig('squares_plot.png',bbox_inches='tight')

圖片描述

10.隨機漫步(繪製隨機漫步圖)

from random import choice

class RandomWalk(object):
    """一個生成隨機漫步數據的類"""
    def __init__(self, num_points = 5000):
        """初始化隨機漫步的屬性"""
        #存儲隨機漫步次數的變量
        self.num_points = num_points
        #所有隨機漫步都始於(0,0)
        #分別存儲隨機漫步經過的每個點的x和y座標
        self.x_values = [0]
        self.y_values = [0]
        

    def fill_walk(self):
        """計算隨機漫步包含的所有點"""

        #不斷漫步,直到列表達到指定的長度
        while len(self.x_values) < self.num_points:
            #決定前進方向以及沿這個方向前進的距離
            x_direction = choice([1,-1])
            x_distance = choice([0,1,2,3,4])
            x_step = x_direction * x_distance
            
            y_direction = choice([1,-1])
            y_distance = choice([0,1,2,3,4])
            y_step = y_direction * y_distance

            #拒絕原地踏步
            if x_step == 0 and y_step == 0:
                continue

            #計算下一個點的x值和y值
            next_x = self.x_values[-1] + x_step
            next_y = self.y_values[-1] +y_step

            self.x_values.append(next_x)
            self.y_values.append(next_y)
        pass

繪製隨機漫步圖

import matplotlib.pyplot as plt

from random_walk import RandomWalk


#創建一個RandomWalk實例,並將其包含的點都繪製出來

rw = RandomWalk()

rw.fill_walk()

plt.scatter(rw.x_values,rw.y_values,s=15)
plt.show()

圖片描述

11.模擬多次隨機漫步

import matplotlib.pyplot as plt

from random_walk import RandomWalk


#只要程序處於活動狀態,就不斷的模擬漫步

while True:
    #創建一個RandomWalk實例,並將其包含的點都繪製出來
    rw = RandomWalk()
    rw.fill_walk()

    plt.scatter(rw.x_values,rw.y_values,s=15)
    plt.show()
    
    keep_running = input("Make another walk?(y/n)")
    if keep_running=='n':
        break

12.給點着色

import matplotlib.pyplot as plt

from random_walk import RandomWalk


#只要程序處於活動狀態,就不斷的模擬漫步

while True:
    #創建一個RandomWalk實例,並將其包含的點都繪製出來
    rw = RandomWalk()
    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor='none',s=15)
    plt.show()
    
    keep_running = input("Make another walk?(y/n)")
    if keep_running=='n':
        break

圖片描述

13.重新繪製起點和終點

import matplotlib.pyplot as plt

from random_walk import RandomWalk


#只要程序處於活動狀態,就不斷的模擬漫步

while True:
    #創建一個RandomWalk實例,並將其包含的點都繪製出來
    rw = RandomWalk()
    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
    
    #突出起點和終點
    plt.scatter(0,0,c='green',edgecolor='none',s=100)
    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    plt.show()

    keep_running = input("Make another walk?(y/n)")
    if keep_running=='n':
        break

圖片描述

14.隱藏座標軸

while True:
    #創建一個RandomWalk實例,並將其包含的點都繪製出來
    rw = RandomWalk()
    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
    
    #突出起點和終點
    plt.scatter(0,0,c='green',edgecolor='none',s=100)
    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隱藏座標軸
    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")
    if keep_running=='n':
        break

圖片描述

15.增加點數(增加點數,將每個點的大小調小)

while True:
    #創建一個RandomWalk實例,並將其包含的點都繪製出來
    rw = RandomWalk(50000)
    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=1)
    
    #突出起點和終點
    plt.scatter(0,0,c='green',edgecolor='none',s=100)
    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隱藏座標軸
    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")
    if keep_running=='n':
        break

圖片描述

17.調整尺寸以適應屏幕

while True:
    #創建一個RandomWalk實例,並將其包含的點都繪製出來
    rw = RandomWalk(50000)
    rw.fill_walk()

    #設置繪圖窗口的尺寸
    #figure()用於指定圖表的寬度,高度,分辨率黑背景色figsize需要指定一個元組,單位英寸,dpi是分辨率,可傳可不傳
    plt.figure(dpi=128,figsize=(10,6))

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=1)
    
    #突出起點和終點
    plt.scatter(0,0,c='green',edgecolor='none',s=100)
    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隱藏座標軸
    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")
    if keep_running=='n':
        break
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章