第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

偏移極桿徑向原點,python Plotly Express

偏移極桿徑向原點,python Plotly Express

largeQ 2023-07-11 16:33:33
我正在使用 Plotly Express 生成 WindRose,并且想知道是否可以偏移徑向的起點。我想要實現(xiàn)的是將 0-2 MPH 風(fēng)速顯示為一個表示平靜的圓圈。不確定是否可能或如何做到這一點,任何幫助將不勝感激。fig = px.bar_polar(df, r= "Frequency", theta="Direction",? ? ? ? ? ? ? ? ? ?color="Strength", template="none",? ? ? ? ? ? ? ? ? ?labels={"Strength": "Wind Speed in MPH"}? ? ? ? ? ? ? ? ? ?)fig.update_layout(legend=dict(? ? orientation="h",? ? yanchor="top",? ? y=-0.1,? ? xanchor="center",? ? x=0.5),? ? polar=dict(radialaxis=dict(showticklabels=False, ticks='', linewidth=0)? ? ))fig.show()Direction,Strength,FrequencyN,0-2,1.45N,2-5,0.4N,5-7,N,7-10,N,10-15,N,15-20,NNE,0-2,0.53NNE,2-5,0.53NNE,5-7,NNE,7-10,NNE,10-15,NNE,15-20,NE,0-2,1.06NE,2-5,NE,5-7,NE,7-10,NE,10-15,NE,15-20,ENE,0-2,0.79ENE,2-5,0.4ENE,5-7,ENE,7-10,ENE,10-15,ENE,15-20,E,0-2,1.32E,2-5,E,5-7,E,7-10,E,10-15,E,15-20,ESE,0-2,1.19ESE,2-5,0.26ESE,5-7,ESE,7-10,ESE,10-15,ESE,15-20,SE,0-2,1.72SE,2-5,1.19SE,5-7,0.4SE,7-10,0.13SE,10-15,SE,15-20,SSE,0-2,1.19SSE,2-5,3.04SSE,5-7,1.98SSE,7-10,0.4SSE,10-15,SSE,15-20,S,0-2,1.06S,2-5,3.17S,5-7,1.19S,7-10,S,10-15,S,15-20,SSW,0-2,0.13SSW,2-5,2.11SSW,5-7,0.4SSW,7-10,SSW,10-15,SSW,15-20,SW,0-2,0.79SW,2-5,0.92SW,5-7,0.53SW,7-10,SW,10-15,SW,15-20,WSW,0-2,0.79WSW,2-5,1.19WSW,5-7,0.26WSW,7-10,WSW,10-15,WSW,15-20,W,0-2,0.92W,2-5,3.83W,5-7,2.64W,7-10,0.4W,10-15,W,15-20,WNW,0-2,3.3WNW,2-5,7.53WNW,5-7,9.64WNW,7-10,4.62WNW,10-15,0.79WNW,15-20,NW,0-2,1.72NW,2-5,10.04NW,5-7,11.1NW,7-10,7.4NW,10-15,1.06NW,15-20,NNW,0-2,1.85NNW,2-5,1.85NNW,5-7,0.79NNW,7-10,NNW,10-15,NNW,15-20,
查看完整描述

2 回答

?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

由于似乎沒有辦法調(diào)整bar_polarPlotly 中繪圖的起始半徑值,因此最好的選擇是嘗試找到一些解決方法。

誠然,這是一個非常老套的解決方案,但為了確保圖表不太接近原點,我們可以創(chuàng)建一個New_Frequency列,只需向該Frequency列添加任意值即可。我選擇了 30。請注意,這樣做會扭曲條形之間的相對距離(如果這是一個問題,則需要以某種方式修改解決方案)。

然后我們將 bar_polar 方法中的參數(shù)設(shè)置r為這個新列,并修改懸停數(shù)據(jù),使其顯示原始的頻率列。

http://img1.sycdn.imooc.com//64ad143100017eec06470655.jpg

現(xiàn)在我們可以畫一個帶有文本“Calm”的圓圈,該圓圈覆蓋與 值對應(yīng)的內(nèi)部條形0-2 MPH。添加形狀時,您需要指定笛卡爾坐標(biāo),盡管這是極坐標(biāo)圖。經(jīng)過一番嘗試和錯誤后,似乎 x=0.5、y=0.5 是 bar_極坐標(biāo)圖的中心,并且從 x0=0.4、y0=0.4、x1=0.6、y1=0.6 出發(fā)的圓覆蓋了內(nèi)部條形。我不知道是否有這方面的文檔。

如果您只是追求圖像,那么希望它看起來不錯。請注意,在圖例中切換不同的風(fēng)速會扭曲繪圖,并且圓圈將不再覆蓋內(nèi)部條形,因此您會失去繪圖的一些交互性。

http://img1.sycdn.imooc.com//64ad143d00013a9d06490680.jpg

我已包含以下代碼:


import pandas as pd

import plotly.express as px

import plotly.graph_objects as go


df = pd.read_csv("windrose.csv")


## this adds 30 to all frequencies, so 0-2 becomes 30-32

df["New_Frequency"] = df["Frequency"] + 30


fig = px.bar_polar(df, r="New_Frequency", theta="Direction",

                   color="Strength", template="none",

                   labels={"Strength": "Wind Speed in MPH"},

                   hover_data={"Strength":True, "New_Frequency":False, "Frequency":True ,"Direction":True}

                   )


fig.add_shape(

    type="circle",

            xref="paper",

            yref="paper",

            x0=0.4,

            y0=0.4,

            x1=0.6,

            y1=0.6,

            line_color="Black",

            fillcolor="White",

            # text="Calm"

)


fig.add_annotation( # add a text callout with arrow

    text="Calm", x=0.5, y=0.5, showarrow=False

)


fig.update_layout(width=800, height=800)

fig.update_layout(legend=dict(

    orientation="h",

    yanchor="top",

    y=-0.1,

    xanchor="center",

    x=0.5),

    polar=dict(radialaxis=dict(showticklabels=False, ticks='', linewidth=0)

    )

)

fig.show()



查看完整回答
反對 回復(fù) 2023-07-11
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

我找到了另一種解決方案,通過在 update_layout 中使用“hole”在極坐標(biāo)條形圖的中間添加一個圓圈。代碼附在下面:


fig2 = px.bar_polar(df, r="Frequency", theta="Direction",

                    color="Strength", template="none",

                    labels={"Strength": "Wind Speed <br>&nbsp;&nbsp;&nbsp; in MPH:"

                            }

                    )


fig2.add_annotation(

    text="Calm<br>" + " " + percent + "%", x=0.5, y=0.5, showarrow=False

)


fig2.add_annotation(

    text="Calm Values are for <br> Wind Speed <2.0 MPH <br />", x=0.93, y=-0.13, showarrow=False

)


fig2.update_layout(legend=dict(

    orientation="h",

    yanchor="middle",  

    y=-0.1,

    xanchor="center",

    x=0.5,

    font=dict(

        size=14)),

    polar=dict(hole=0.1, radialaxis=dict(showticklabels=False, ticks='', linewidth=0)

               ),

    margin=dict(t=110),

    title=dict(

        text=title,

        xanchor='center',

        yanchor='top'

    )

)

輸出:

http://img1.sycdn.imooc.com//64ad14650001e64114671249.jpg

由于 0-2 MPH 在中間顯示為圓圈,因此在我的數(shù)據(jù)框中,我將所有 0-2 MPH 的值設(shè)置為零,這確保不顯示 0-2 bin。



查看完整回答
反對 回復(fù) 2023-07-11
  • 2 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號