最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python幾種繪制時(shí)間線圖的方法

 更新時(shí)間:2022年08月10日 10:45:28   作者:zhouluobo  
這篇文章主要介紹了Python幾種繪制時(shí)間線圖的方法,Matplotlib 作為 Python 家族最為重要的可視化工具,其基本的 API 以及繪制流程還是需要掌握的

Matplotlib 制作

Matplotlib 作為 Python 家族最為重要的可視化工具,其基本的 API 以及繪制流程還是需要掌握的。尤其是該庫(kù)的靈活程度以及作為眾多工具的基礎(chǔ),重要性不言而喻

下面我們來(lái)看下該如何繪制一個(gè)時(shí)間線圖表

導(dǎo)入庫(kù)以及設(shè)置 XY 軸數(shù)據(jù)

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

y1 = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
x1 = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]

因?yàn)槭峭ㄟ^(guò)折線圖來(lái)實(shí)現(xiàn)時(shí)間線效果,為了達(dá)到一條豎線的情況,這里設(shè)置了 X 軸數(shù)值都相同,Y 軸數(shù)值等差分布

創(chuàng)建畫布及標(biāo)題:

fig, ax = plt.subplots(sharey=True, figsize=(7, 4))
ax.plot(x1, y1, label='First line', linewidth=3, color='r', marker='o', markerfacecolor='white', markersize=12)
plt.title('蘿卜大雜燴')
plt.suptitle('歷史上的今天', fontsize=16, color='red')

此時(shí)效果如下:

alt

接下來(lái)我們?cè)O(shè)置時(shí)間線兩邊的數(shù)據(jù)

# 右側(cè)數(shù)據(jù)
right_y_year = 0.95
right_y_text = 0.9
year_right = 1931
for i in range(5):
    plt.text(0.57, right_y_year, str(year_right+1), fontsize=15, horizontalalignment='center', verticalalignment='center', 
             transform=ax.transAxes, color='black')
    plt.text(0.75, right_y_text, "從百草園到三味書屋-魯迅" + str(i), fontsize=15, horizontalalignment='center', verticalalignment='center', 
             transform=ax.transAxes, color='red')
    right_y_year -= 0.2
    right_y_text -= 0.2
    year_right += 1
    
# 左側(cè)數(shù)據(jù)
left_y_year = 0.85
left_y_text = 0.8
year_left = 1941
for i in range(5):
    plt.text(0.43, left_y_year, str(year_left+1), fontsize=15, horizontalalignment='center', verticalalignment='center', 
             transform=ax.transAxes, color='black')
    plt.text(0.2, left_y_text, "從百草園到三味書屋-魯迅" + str(i), fontsize=15, horizontalalignment='center', verticalalignment='center', 
             transform=ax.transAxes, color='red', url='https://www.baidu.com')
    left_y_year -= 0.2
    left_y_text -= 0.2
    year_left += 1

這里主要使用了 text 函數(shù),為時(shí)間線軸兩邊分別添加數(shù)據(jù)

如果我們還想要添加個(gè)人的其他信息,比如公眾號(hào)二維碼等,可以在指定位置增加圖片,同時(shí)去掉坐標(biāo)軸

# 增加圖片
img = plt.imread('二維碼.png')
ax2 = plt.axes((0.7, 0.1, 0.3, 0.3))
ax2.imshow(img, origin='lower', alpha=0.5)
ax2.axis('off')
ax.axis('off')
plt.show()

可以看出,由于 text 函數(shù)是通過(guò)坐標(biāo)來(lái)確定文字顯示的位置的,所以我們的時(shí)間線軸兩邊的數(shù)據(jù)分布還是不是特別完美,不知道是否有其他的更加方便的方法來(lái)設(shè)置

Plotly 繪制

Plotly 作為 Python 家族另一個(gè)非常強(qiáng)大的可視化工具,同樣可以完成時(shí)間線圖的繪制

在繪圖之前,完美先處理數(shù)據(jù)

這里使用的數(shù)據(jù)是2020年全年的微博熱搜數(shù)據(jù)

import pandas as pd
weibo = pd.read_csv("weibo_2020.csv")
def deal_date(frame):
    tmp = frame.split('-')
    return tmp[0] + '-' + tmp[1]
weibo['new_date'] = weibo['date'].apply(lambda x : deal_date(x))
key_list_right = []
for i in range(1, 12, 2):
    if i < 10:
        mydate = '2020-0%s' % str(i)
    else:
        mydate = '2020-%s' % str(i)
    keyword = weibo[weibo['new_date'] == mydate].sort_values(by='searchCount', ascending=False)['keyword'].tolist()[0]
    searchCount = weibo[weibo['new_date'] == mydate].sort_values(by='searchCount', ascending=False)['searchCount'].tolist()[0]
    mount = str(i) + '月'
    content = ','.join([keyword, str(searchCount) + '搜索量', mount])
    key_list_right.append(content)
print(key_list_right)

Output:

['最新疫情地圖,18130201搜索量,1月',
 '肖戰(zhàn)工作室道歉,13117531搜索量,3月',
 '何鴻燊去世,15302424搜索量,5月',
 '高考作文,15647446搜索量,7月',
 '乘風(fēng)破浪的姐姐成團(tuán)之夜,8226994搜索量,9月',
 '特朗普,7310000搜索量,11月']

可以看到,通過(guò)上面的數(shù)據(jù)處理,我們成功提取了1、3、5、7、9以及11月的當(dāng)月搜索量最高的熱搜標(biāo)題,同理可以獲取到雙月份的熱搜標(biāo)題數(shù)據(jù)

下面開始作圖:

import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
from plotly.graph_objs import *

layout = Layout(
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)',
    title={'text': '微博熱搜', 'x': 0.5},
    yaxis={'title': 'Proportion (%)'}
)
fig = go.Figure(layout=layout)
fig.add_traces([go.Scatter(x=[2,2,2,2,2,2], y=[5, 10, 15, 20, 25, 30], text=key_list_right, textposition="bottom right", mode="lines+text"),
                go.Scatter(x=[2,2,2,2,2,2], y=[5, 10, 15, 20, 25, 30], textposition="top left", mode="lines+text", text=key_list_left)]) 
fig.update_traces(showlegend=False)
fig.update_layout(xaxis=dict(visible=False), yaxis=dict(visible=False))
fig.show()

通過(guò) Plotly 繪圖就相對(duì)簡(jiǎn)單很多了,直接使用 text 參數(shù)把我們得到的熱搜數(shù)據(jù)添加上即可

最終效果如下:

效果很樸素,是因?yàn)槲覀儧](méi)有進(jìn)行過(guò)多的樣式設(shè)置,大家可以自行探索下不同樣式啊

Excel 繪制

上面的兩種方法都需要有一定的代碼基礎(chǔ),下面介紹的 Excel 方法則可以說(shuō)是人人都能完成,一起來(lái)看看吧

先來(lái)看看最終的效果:

首先準(zhǔn)備數(shù)據(jù),我們?cè)谛陆ǖ?Excel 文檔中創(chuàng)建如下數(shù)據(jù)

然后插入散點(diǎn)圖:

先插入一個(gè)空白散點(diǎn)圖,然后將 X 軸設(shè)置為【年份】,Y 軸設(shè)置為【位置】,再把 Y 軸和網(wǎng)格線都刪除

接下來(lái)我們美化一下 X 軸:

我們雙擊 X 軸,調(diào)出格式窗口,在坐標(biāo)軸選項(xiàng)標(biāo)簽中設(shè)置【單位】,將【小】改為1,設(shè)置【刻度線】,將【主刻度線】設(shè)置為交叉。再點(diǎn)擊【油漆桶】,選擇一個(gè)線條的顏色,將寬度調(diào)整為2,將【結(jié)尾箭頭類型】調(diào)整為向右箭頭

再接下來(lái)我們把 X 軸連接起來(lái):

首先選擇一個(gè)散點(diǎn),添加誤差線。然后把橫向的誤差線設(shè)置為無(wú)輪廓,再選中豎向的誤差線,把【垂直誤差線】設(shè)置為負(fù)偏差,再把誤差量設(shè)置為100%,最后再給豎向誤差線調(diào)整樣式即可

下面開始添加數(shù)據(jù):

我們把公司的各種大事件添加到數(shù)據(jù)表當(dāng)中

向圖表中添加【數(shù)據(jù)標(biāo)簽】,即數(shù)據(jù)中事件那一列,然后再去掉 Y 值即可

最后我們還可以通過(guò) Excel 自帶的各種圖標(biāo)進(jìn)行美化操作

好了,以上就是今天分享的所有內(nèi)容,如果對(duì)你有幫助,幫忙點(diǎn)贊和在看支持哦~

到此這篇關(guān)于Python幾種繪制時(shí)間線圖的方法的文章就介紹到這了,更多相關(guān)Python繪制時(shí)間線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量

    OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量

    這篇文章主要介紹了OpenCV基本操作之對(duì)象測(cè)量,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • python編程項(xiàng)目中線上問(wèn)題排查與解決

    python編程項(xiàng)目中線上問(wèn)題排查與解決

    因?yàn)闃I(yè)務(wù)上的設(shè)計(jì)存在問(wèn)題,導(dǎo)致數(shù)據(jù)庫(kù)表總是被鎖,而且是不定期的鎖定,導(dǎo)致服務(wù)器運(yùn)行異常,今天就來(lái)跟大家說(shuō)說(shuō)該如何避免這種問(wèn)題
    2021-11-11
  • Python3標(biāo)準(zhǔn)庫(kù)總結(jié)

    Python3標(biāo)準(zhǔn)庫(kù)總結(jié)

    在本篇內(nèi)容中我們給大家總結(jié)了關(guān)于Python3標(biāo)準(zhǔn)庫(kù)的相關(guān)內(nèi)容,需要的朋友們跟著學(xué)習(xí)下。
    2019-02-02
  • kaggle數(shù)據(jù)分析家庭電力消耗過(guò)程詳解

    kaggle數(shù)據(jù)分析家庭電力消耗過(guò)程詳解

    這篇文章主要為大家介紹了kaggle數(shù)據(jù)分析家庭電力消耗示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Pandas繪圖函數(shù)超詳細(xì)講解

    Pandas繪圖函數(shù)超詳細(xì)講解

    matplotlib要組裝一張圖表,需要的各個(gè)基礎(chǔ)組件對(duì)象。相對(duì)工作量較大,但在pandas中我們有行標(biāo)簽和列標(biāo)簽以及分組信息。原本制作一張圖表需要一大堆matplotlib代碼。在pandas中只需要一兩條代碼就可以了,今天記錄一下,pandas中常見的幾個(gè)繪制圖表的方法
    2022-12-12
  • windows上安裝python3教程以及環(huán)境變量配置詳解

    windows上安裝python3教程以及環(huán)境變量配置詳解

    這篇文章主要介紹了windows上安裝python3教程以及環(huán)境變量配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 一文詳解測(cè)試Python讀寫xml配置文件

    一文詳解測(cè)試Python讀寫xml配置文件

    這篇文章主要介紹了一文詳解測(cè)試Python讀寫xml配置文件,xml也是常用的配置文件格式之一,Python中的xml.etree.ElementTree模塊支持解析和創(chuàng)建xml數(shù)據(jù)
    2022-09-09
  • Django之 ArrayAgg與Admin技巧學(xué)習(xí)

    Django之 ArrayAgg與Admin技巧學(xué)習(xí)

    這篇文章主要為大家介紹了Django之ArrayAgg與Admin的技巧學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • pyqt5利用pyqtDesigner實(shí)現(xiàn)登錄界面

    pyqt5利用pyqtDesigner實(shí)現(xiàn)登錄界面

    這篇文章主要為大家詳細(xì)介紹了pyqt5利用pyqtDesigner實(shí)現(xiàn)登錄界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python模仿網(wǎng)頁(yè)版微信發(fā)送消息功能

    python模仿網(wǎng)頁(yè)版微信發(fā)送消息功能

    這篇文章主要介紹了python模仿網(wǎng)頁(yè)版微信發(fā)送消息功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評(píng)論

姜堰市| 沙湾县| 长海县| 江津市| 德州市| 报价| 安化县| 十堰市| 临潭县| 濮阳县| 日喀则市| 天柱县| 定陶县| 西林县| 镇宁| 盱眙县| 竹溪县| 那坡县| 广东省| 涡阳县| 揭西县| 绥化市| 晋江市| 海南省| 林口县| 且末县| 武定县| 西宁市| 湖南省| 深水埗区| 普安县| 雷波县| 遂宁市| 莱西市| 汾西县| 花垣县| 台东市| 浮山县| 阜宁县| 萍乡市| 昭苏县|