사용 방법 plotly.graph_objs
과 유사한 방법으로 팬더 데이터를 플롯 plotly.express
특히 색상 다양한 데이터 유형에 -?
pandas 열의 값을 기반으로 데이터 유형을 그룹화하는 플롯 표현 기능은 정말 유용합니다. 불행히도 내 시스템에서 express를 사용할 수 없습니다 (그래프 객체를 orca 로 보내야하기 때문에 )
특정 Type
색상으로 매핑하여 동일한 기능을 얻을 수 full_plot
있지만 (아래 예 참조) 유형 AZ가 있는데 Type
데이터 프레임에서 가능한 각 색상 을 매핑하는 더 좋은 방법이 있습니까?
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
d = {'Scenario': [1, 2, 3, 1, 2,3],
'Type': ["A", "A", "A", "B", "B", "B"],
'VAL_1': [100, 200, 300, 400 , 500, 600],
'VAL_2': [1000, 2000, 3000, 4000, 5000, 6000]}
df = pd.DataFrame(data=d)
def quick_plot(df):
fig = px.bar(df, y='VAL_1', x='Scenario', color="Type", barmode='group')
fig['layout'].update(title = "PX Plot",
width = 600, height = 400,
xaxis = dict(showgrid=False))
fig.show()
def full_plot(df):
colors = {'A': 'blue',
'B': 'red'}
s0=df.query('Type=="A"')
s1=df.query('Type=="B"')
fig = go.Figure()
fig.add_trace(go.Bar(
name='A',
y=s0['VAL_1'],x=s0['Scenario'], marker={'color': colors['A']}))
fig.add_trace(go.Bar(
name='B',
y=s1['VAL_1'],x=s1['Scenario'], marker={'color': colors['B']}))
fig['layout'].update(title = "Full Plot",
width = 600, height = 400)
fig.update_layout(barmode='group')
fig.show()
quick_plot(df)
full_plot(df)
다음과 같은 사전을 간단히 사용할 수 있습니다.
colors = {'A':'steelblue',
'B':'firebrick'}
유일한 문제는 각 고유 유형에 대한 데이터 프레임을 그룹화하고 for 루프를 사용하여 각 유형에 대한 새 추적을 추가하는 것입니다. 아래 코드 스 니펫은이를 처리하여이 플롯을 생성합니다.
# imports
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
# data
d = {'Scenario': [1, 2, 3, 1, 2,3],
'Type': ["A", "A", "A", "B", "B", "B"],
'VAL_1': [100, 200, 300, 400 , 500, 600],
'VAL_2': [1000, 2000, 3000, 4000, 5000, 6000]}
df = pd.DataFrame(data=d)
# assign colors to type using a dictionary
colors = {'A':'steelblue',
'B':'firebrick'}
# plotly figure
fig=go.Figure()
for t in df['Type'].unique():
dfp = df[df['Type']==t]
fig.add_traces(go.Bar(x=dfp['Scenario'], y = dfp['VAL_1'], name=t,
marker_color=colors[t]))
fig.show()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다