欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何利用?Python?繪制動態(tài)可視化圖表

 更新時間:2022年02月25日 10:18:54   作者:Python數(shù)據(jù)挖掘  
這篇文章主要介紹了如何利用?Python?繪制動態(tài)可視化圖表,主要介紹介紹如何進(jìn)行保存gif格式的文件。那么我們就開始進(jìn)入主題,來談一下Python當(dāng)中的gif模塊,需要的朋友可以參考一下

一、安裝相關(guān)的模塊

首先第一步的話我們需要安裝相關(guān)的模塊,通過pip命令來安裝

pip install gif

另外由于gif模塊之后會被當(dāng)做是裝飾器放在繪制可視化圖表的函數(shù)上,主要我們依賴的還是Python當(dāng)中繪制可視化圖表的matplotlibplotly、以及altair這些模塊,因此我們還需要下面這幾個庫

pip install "gif[altair]" ? ?
pip install "gif[matplotlib]"
pip install "gif[plotly]"

二、gif和matplotlib的結(jié)合

我們先來看gifmatplotlib模塊的結(jié)合,我們先來看一個簡單的例子,

代碼如下:

import random
from matplotlib import pyplot as plt
import gif

x = [random.randint(0, 100) for _ in range(100)]
y = [random.randint(0, 100) for _ in range(100)]

gif.options.matplotlib["dpi"] = 300

@gif.frame
def plot(i):
? ? xi = x[i*10:(i+1)*10]
? ? yi = y[i*10:(i+1)*10]
? ? plt.scatter(xi, yi)
? ? plt.xlim((0, 100))
? ? plt.ylim((0, 100))

frames = []
for i in range(10):
? ? frame = plot(i)
? ? frames.append(frame)

gif.save(frames, 'example.gif', duration=3.5, unit="s", between="startend")

output:

代碼的邏輯并不難理解,首先我們需要定義一個函數(shù)來繪制圖表并且?guī)?code>gif裝飾器,接著我們需要一個空的列表,通過for循環(huán)將繪制出來的對象放到這個空列表當(dāng)中然后保存成gif格式的文件即可。

三、gif和plotly的結(jié)合

除了和matplotlib的聯(lián)用之外,gifplotly之間也可以結(jié)合起來用

代碼如下:

import random
import plotly.graph_objects as go
import pandas as pd
import gif

df = pd.DataFrame({
? ? 't': list(range(10)) * 10,
? ? 'x': [random.randint(0, 100) for _ in range(100)],
? ? 'y': [random.randint(0, 100) for _ in range(100)]
})

@gif.frame
def plot(i):
? ? d = df[df['t'] == i]
? ? fig = go.Figure()
? ? fig.add_trace(go.Scatter(
? ? ? ? x=d["x"],
? ? ? ? y=d["y"],
? ? ? ? mode="markers"
? ? ))
? ? fig.update_layout(width=500, height=300)
? ? return fig

frames = []
for i in range(10):
? ? frame = plot(i)
? ? frames.append(frame)

gif.save(frames, 'example_plotly.gif', duration=100)

output:

整體的代碼邏輯和上面的相似,這里也就不做具體的說明了

四、matplotlib多子圖動態(tài)可視化

上面繪制出來的圖表都是在單張圖表當(dāng)中進(jìn)行的,那當(dāng)然了我們還可以在多張子圖中進(jìn)行動態(tài)可視化的展示,

代碼如下:

# 讀取數(shù)據(jù)
df = pd.read_csv('weather_hourly_darksky.csv')
df = df.rename(columns={"time": "date"})

@gif.frame
def plot(df, date):
? ? df = df.loc[df.index[0]:pd.Timestamp(date)]

? ? fig, (ax1, ax2, ax3) = plt.subplots(3, figsize=(10, 6), dpi=100)

? ? ax1.plot(df.temperature, marker='o', linestyle='--', linewidth=1, markersize=3, color='g')
? ? maxi = round(df.temperature.max() + 3)
? ? ax1.set_xlim([START, END])
? ? ax1.set_ylim([0, maxi])
? ? ax1.set_ylabel('TEMPERATURE', color='green')

? ? ax2.plot(df.windSpeed, marker='o', linestyle='--', linewidth=1, markersize=3, color='b')
? ? maxi = round(df.windSpeed.max() + 3)
? ? ax2.set_xlim([START, END])
? ? ax2.set_ylim([0, maxi])
? ? ax2.set_ylabel('WIND', color='blue')

? ? ax3.plot(df.visibility, marker='o', linestyle='--', linewidth=1, markersize=3, color='r')
? ? maxi = round(df.visibility.max() + 3)
? ? ax3.set_xlim([START, END])
? ? ax3.set_ylim([0, maxi])
? ? ax3.set_ylabel('VISIBILITY', color='red')

frames = []
for date in pd.date_range(start=df.index[0], end=df.index[-1], freq='1M'):
? ? frame = plot(df, date)
? ? frames.append(frame)

gif.save(frames, "文件名稱.gif", duration=0.5, unit='s')

output:

五、動態(tài)氣泡圖

最后我們用plotly模塊來繪制一個動態(tài)的氣泡圖,

代碼如下:

import gif
import plotly.graph_objects as go
import numpy as np
np.random.seed(1)

N = 100
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sz = np.random.rand(N) * 30

layout = go.Layout(
? ? xaxis={'range': [-2, 2]},
? ? yaxis={'range': [-2, 2]},
? ? margin=dict(l=10, r=10, t=10, b=10)
)

@gif.frame
def plot(i):
? ? fig = go.Figure(layout=layout)
? ? fig.add_trace(go.Scatter(
? ? ? ? x=x[:i],
? ? ? ? y=y[:i],
? ? ? ? mode="markers",
? ? ? ? marker=go.scatter.Marker(
? ? ? ? ? ? size=sz[:i],
? ? ? ? ? ? color=colors[:i],
? ? ? ? ? ? opacity=0.6,
? ? ? ? ? ? colorscale="Viridis"
? ? ? ? )
? ? ))
? ? fig.update_layout(width=500, height=300)
? ? return fig

frames = []
for i in range(100):
? ? frame = plot(i)
? ? frames.append(frame)

gif.save(frames, "bubble.gif")

output:

到此這篇關(guān)于如何利用 Python 繪制動態(tài)可視化圖表的文章就介紹到這了,更多相關(guān)Python 繪制動態(tài)可視化圖表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pycharm中沒有找到database的解決方案

    pycharm中沒有找到database的解決方案

    這篇文章主要介紹了pycharm中沒有找到database的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 如何安裝并在pycharm使用selenium的方法

    如何安裝并在pycharm使用selenium的方法

    這篇文章主要介紹了如何安裝并在pycharm使用selenium,本文給大家提到了selenium安裝并導(dǎo)入pycharm的教程,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    這篇文章主要介紹了Python創(chuàng)建普通菜單,結(jié)合實例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項的相關(guān)操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下
    2018-05-05
  • 如何學(xué)習(xí)Python time模塊

    如何學(xué)習(xí)Python time模塊

    在本篇文章里小編給大家分享的是關(guān)于Python time模塊知識點及用法,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法

    Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法

    今天小編就為大家分享一篇Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python機(jī)器學(xué)習(xí)利用隨機(jī)森林對特征重要性計算評估

    Python機(jī)器學(xué)習(xí)利用隨機(jī)森林對特征重要性計算評估

    本文是對隨機(jī)森林如何用在特征選擇上做一個簡單的介紹。隨機(jī)森林非常簡單,易于實現(xiàn),計算開銷也很小,更令人驚奇的是它在分類和回歸上表現(xiàn)出了十分驚人的性能
    2021-10-10
  • python實現(xiàn)提取jira bug列表的方法示例

    python實現(xiàn)提取jira bug列表的方法示例

    公司要求內(nèi)部每日整理jira bug發(fā)郵件,手動執(zhí)行了一段時間,想著用自動化的方式實現(xiàn),所以本文主要介紹了python實現(xiàn)提取jira bug列表,感興趣的可以了解一下
    2021-05-05
  • python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法

    python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法,實例分析了Python使用MySQLdb模塊操作mysql數(shù)據(jù)庫的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • Python不同目錄間進(jìn)行模塊調(diào)用的實現(xiàn)方法

    Python不同目錄間進(jìn)行模塊調(diào)用的實現(xiàn)方法

    這篇文章主要介紹了Python不同目錄間進(jìn)行模塊調(diào)用的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類

    深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類

    這篇文章主要為大家介紹了深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評論