1. 程式人生 > >python數據可視化

python數據可視化

圖形 pri display col not all com 初始 算數

1、安裝matplotlib

在 cmd 中鍵入 python -m pip install matplotlib,系統將自動安裝,需要等一段時間,待完成後 python -m pip list ,顯示

技術分享圖片

敲黑板劃重點:一定通過 cdm 指定具體安裝文件夾。 cd 文件夾名 可進入指定文件夾。

2、簡易畫圖

2.1 直線圖

import matplotlib.pyplot as ply
‘導入模塊 pyplot,並自定義為ply‘
input_value = [1,2,3,4,5,6]
squares =[1,4,9,16,25,36 ]
ply.plot(input_value,squares,linewidth = 5)
‘畫圖命令,並接收input_value作為x,squares 作為y,linewidth指定線條粗細‘
ply.title("square numbers",fontsize= 24)
‘圖標標題‘
ply.xlabel("value",fontsize = 12)
‘圖表橫坐標的標題 value,和字的大小 fontsize‘
ply.ylabel("squares",fontsize = 12)
‘圖表橫坐標的標題,和字的大小‘
ply.tick_params(axis="both",labelsize=14)
"指定橫縱坐標axis= ‘both‘上的標尺字的大小 labelsize"
ply.show()
‘顯示圖形‘

輸出圖像:

技術分享圖片

2.2 散點圖

import matplotlib.pyplot as plt
x_value = list(range(0,100,2))
y_value = [x**2 for x in x_value]
‘自動生成計算數據‘
print(x_value)
print(y_value)
plt.scatter(x_value,y_value,s=10)
#plt.scatter(x_value,y_value,c=y_value,cmap=plt.cm.Blues,edgecolor=‘None‘,s=10)
‘參數c 設置成一個y值的列表,參數cmap 是采用的顏色映射的種類。參數edgecolor 是去掉散點的黑邊‘
‘scatter()顯示點的大小是 s= 10,plot() 顯示線條粗細的是linewidth= 10‘
plt.title("squares number",fontsize= 20)
plt.xlabel("value",fontsize=10)
plt.ylabel("square",fontsize=10)
plt.tick_params(axis="both",which = ‘major‘,labelsize= 10)

plt.savefig(‘squares_scatter.png‘,bbox_inches= ‘tight‘)
‘保存圖片為squares_scatter.png,並且bbox_inches =‘tighr‘只保存圖像,刪除多余空白‘
plt.show()

使用scatter()函數繪制散點圖
輸出結果:

技術分享圖片

顏色映射(colomap)是一系列顏色,他們從顏色漸變到結束顏色。

輸出結果:

技術分享圖片

3、隨機漫步:每次決策都是隨機決定的。

rand_walk.py

from random import choice
‘從 random modules中導入choice‘
class RandomWalk(object):
‘創建一個類 RandomWalk().‘
def __init__(self,num_point = 5000):
‘初始化類的屬性‘
self.num_point = num_point
self.x_value=[ 0 ]
self.y_value=[ 0 ]
‘指定開始位置‘

def fill_walk(self):
‘定義隨機漫步的方法,‘
while len(self.x_value) < self.num_point:
x_direction = choice([1,-1])
‘隨機漫步的方向 1:向右 -1: 向左‘
x_distance = choice([0,1,2,3,4,5])
‘隨機漫步的距離‘
x_step = x_direction * x_distance
‘隨機漫步的 位移(大小和方向)‘
y_direction = choice([-1,1])
y_distance = choice([0,1,2,3,4,5])
y_step = y_direction * y_distance

if x_step ==0 and y_step ==0:
continue
‘避免原地踏步‘

next_x =self.x_value[-1] + x_step
‘確定 點的 新位置‘
next_y =self.y_value[-1] + y_step

self.x_value.append(next_x)
‘將已經走過的點 添加到列表中‘
self.y_value.append(next_y)

random_walk_show :

import matplotlib.pyplot as plt
‘導入matplotlib.pilot 命名為 plt‘
from random_walk import RandomWalk
"從random_walk 中導入 RandomWalk 類"
while True:
rw =RandomWalk()
rw.fill_walk()
‘調用 fill_walk() 方法‘

point = list(range(rw.num_point))
‘生成和步數一樣多的列表‘
plt.scatter(rw.x_value,rw.y_value,c=point,cmap = plt.cm.Reds,
edgecolor = None,s=10)

plt.scatter(0,0,c= "green",edgecolor= "None",s=20)
plt.scatter(rw.x_value[-1],rw.y_value[-1],c="green",edgecolor = "None",s=50)
‘突出首個點 和 最後一個點 ‘

plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
‘隱藏橫縱坐標‘

plt.show()
keep_running = input("make another walk? y or n :")
if keep_running == ‘n‘:
break
‘判斷時候繼續 隨機漫步‘
隨機漫步生成的圖:

技術分享圖片技術分享圖片










補充:
如果想使得輸出的圖像大小適合屏幕大小,可以使用:plt.figure(dpi=128,figsize=(20,10)) 其中向dpi傳遞是分辨率,向figsize傳遞以元組,指定繪圖窗口的尺寸。(沒看出區別多大!)

python數據可視化