python數據可視化

来源:https://www.cnblogs.com/daimatuo/archive/2019/01/19/10291223.html
-Advertisement-
Play Games

1、安裝matplotlib 在 cmd 中鍵入 python -m pip install matplotlib,系統將自動安裝,需要等一段時間,待完成後 python -m pip list ,顯示 敲黑板劃重點:一定通過 cdm 指定具體安裝文件夾。 cd 文件夾名 可進入指定文件夾。 2、簡 ...


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傳遞以元組,指定繪圖視窗的尺寸。(沒看出區別多大!)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # 介面類:python 原生不支持# 抽象類:python 原生支持的 介面類 首先我們來看一個支付介面的簡單例子 介面類的多繼承 這是三種動物tiger 走路 游泳swan 走路 游泳 飛oldying 走路 飛 為了避免代碼重覆,我們寫以下三個類下麵就是實現了 介面類的規範 不需要有功能實現的 ...
  • 多線程 基本實現: 第一種,函數方式 # -*- coding:utf-8 -*- import thread import time def print_time(threadName, delay): count = 0 while count < 5: time.sleep(delay) co ...
  • 最近開髮網關服務的過程當中,需要用到kafka轉發消息與保存日誌,在進行壓測的過程中由於是多線程併發操作kafka producer 進行非同步send,發現send耗時有時會達到幾十毫秒的阻塞,很大程度上上影響了併發的性能,而在後續的測試中發現單線程發送反而比多線程發送效率高出幾倍。所以就對kafk ...
  • SSM框架基礎配置文件包括:applicationContext.xml(Spring框架核心配置文件)、dispatcher-servlet.xml(SpringMVC框架核心配置文件)、mybatis-config.xml(Mybatis配置文件)、database.properties(數據源 ...
  • 迷宮問題 迷宮問題一直是電腦工作者感興趣的問題,因為它可以展現棧的巧妙應用, 這裡將利用棧開發一個走迷宮程式,雖然在發現正確路徑前,程式要嘗試許多 錯誤路徑,但是,一旦發現,就能夠重新走出迷宮,而不會再去嘗試任何錯誤路徑。 迷宮問題求解 電腦中可以用如圖所示的方塊圖表示迷宮。圖中空白方塊為通道, ...
  • 在項目中,很多地方需要根據時間獲取相應的數據,將時間格式化,或者時間比較等相關操作。一個良好的工具類不僅可以減少代碼冗餘,還能促進業務處理,加快進度。 輸出結果: ...
  • Java包是一個相關類的集合,Java標準類庫是一組支持基本編輯任務的包(即Java標準庫是按包分組的)。 下麵是Java標準類庫中的部分包: (https://www.oracle.com/technetwork/java/api-141528.html為線上Java API文檔的網頁,選擇適應的 ...
  • 題目鏈接 給出一個有N個數的序列,編號0 - N - 1。進行Q次查詢,查詢編號i至j的所有數中,最大的數是多少。 例如: 1 7 6 3 1。i = 1, j = 3,對應的數為7 6 3,最大的數為7。(該問題也被稱為RMQ問題) 輸入 輸出 輸入樣例 輸出樣例 Sparse Table解決Ra ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...