我正在尝试在制造商不透明度被某些向量改变的地方放置标记。
但标记边缘颜色不透明度是恒定的。
fig.add_trace(go.Scatter(x=real.index, y=real['some_value'],
mode='markers',
marker={'opacity': real['another value'],
'color':'green',
'size':10,
'line':dict(width=1,
color='rgba(165,42,42,1)')}
))
Run Code Online (Sandbox Code Playgroud)
从下图中可以看出,标记边缘颜色不透明度与标记填充的颜色不透明度一起变化。
我的目的是保持线条(标记边缘)不透明度恒定。
注意:这个问题并没有回答以下问题:
您可以轻松地在 0 和 1 之间重新缩放 pandas 系列,并将其用作参数, rgba(red,green,blue,opacity)例如图形中某个标记的不透明度在 0 到 1 之间color='rgba(100,0,255,'+opac+')'。opac标记的颜色属性对于任何标记都是唯一的go.Scatter(),因此您必须为每个点添加唯一的跟踪。然后,同时,您可以使用以下命令设置标记轮廓的颜色(如果您愿意的话,还可以设置不透明度)marker=dict(line=dict(color='rgba(100,0,255,1)'))
在下图中,我将轮廓颜色设置为“rgba(100,0,255,1)”,并且标记填充的不透明度根据上面的逻辑而变化。这样,最高值将显示为完全“填充”的标记:
但您也可以使用以下方法设置更明确定义的线line=dict(color='rgba(0,0,0,1)', width = 2):
现在您可以尝试使用所有rgba参数来找到您喜欢的颜色。
# imports
import plotly.graph_objects as go
import pandas as pd
import numpy as np
# sample data in the form of an hourlt
np.random.seed(1234)
tseries = pd.date_range("01.01.2020", "01.04.2020", freq="H")
data = np.random.randint(-100, 100, size=(len(tseries), 3))
df = pd.DataFrame(data=data)
df.columns=list('ABC')
df['C_scaled'] = df['C'].max()/df['C']
df['C_scaled'] = (df['C']-df['C'].min())/(df['C'].max()-df['C'].min())
df = df.sort_values(by=['C_scaled'], ascending=False)
fig=go.Figure()
for ix in df.index:
d = df.iloc[ix]
opac = str(d['C_scaled'])
fig.add_trace(go.Scatter(x=[d['A']], y=[d['B']], showlegend=False,
marker=dict(size = 14, color='rgba(100,0,255,'+opac+')',
line=dict(color='rgba(0,0,0,1)', width = 2)))
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
编辑: Hoverinfo 副作用
只需包含以下内容即可编辑悬停信息,以便 x 和 y 值始终在悬停时显示为最接近的值:
fig.update_layout(hovermode="x")
fig.update_traces(hoverinfo = 'x+y')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4774 次 |
| 最近记录: |