[英]Plotting with if-else conditional statements in python
我正在尝试将 go.scatter 与我的条件语句一起使用。
A 和 df['T_orNonT'] 是我的数据框 df 中的列。 如果“A”上的一行小于或等于 200,则 df['T_orNonT'] 列将显示 'Non-T',否则为 'T'
我想使用 go.scatter 绘制它们,其中 'T' 或 'Non-T' 显示为不同的颜色。 这是我的代码:
import plotly.graph_objects as go
fig = go.Figure()
for i in range (0, length):
if A[i] <= 200:
df['T_or_NonT'].iloc[i] = 'Non-T'
fig = go.Figure()
fig.add_trace(go.Scatter(
x = df['Date'],
y = df['A'],
mode ='markers',
name='Non-T',
marker=dict(color ='red')))
fig.show()
else:
df['T_or_NonT'].iloc[i] = 'T'
fig = go.Figure()
fig.add_trace(go.Scatter(
x = df['Date'],
y = df['A'],
mode ='markers',
name='T',
marker=dict(color ='green')))
fig.show()
这应该是输出:
Date A T or Non-T
07/21 201 T
08/21 255 T
09/21 198 Non-T
然后他们将绘制日期(每月)与降雨量(即 A 列)。 T 标记为红色,非 T 标记为绿色。
但我不能让它工作。 我想知道编码这个的正确方法。 顺便说一下,我是一个 python 初学者用户。
附注。 您还可以建议是否有其他解决方法
有很多方法可以做到这一点,但我认为最简单的方法是为决策结果设置一列颜色。 最简单的方法是在判断结果列上一个颜色列,然后用该数据框的判断条件项提取的数据绘制散点图。
import pandas as pd
import numpy as np
import plotly.graph_objects as go
df = pd.DataFrame({'Date': pd.date_range('2018-01-21','2021-01-21',freq='1m'),
'A': np.random.randint(150,250, 36)})
df['T_or_NonT'] = np.where(df['A'] >= 200,'T','Non-T')
df['color'] = np.where(df['A'] >= 200,'red','green')
fig = go.Figure()
for t,c in zip(df['T_or_NonT'].unique(), df['color'].unique()):
dfs = df[df['T_or_NonT'] == t]
fig.add_trace(go.Scatter(
x = dfs['Date'],
y = dfs['A'],
mode = 'markers',
name = t,
marker = dict(
color = c
)
))
fig.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.