为了账号安全,请及时绑定邮箱和手机立即绑定

Plotly:如何在注释中同时使用美元符号和换行符?

Plotly:如何在注释中同时使用美元符号和换行符?

MM们 2023-07-18 16:34:26
不确定我是否在这里遗漏了一些明显的东西,但是当我在带有注释的文本中插入一个中断(<br>)时,它似乎忽略了它。我已经尝试过fig.add_annotations,但同样的事情发生了。你知道为什么这不起作用吗?import pandas as pdimport plotly.graph_objects as goimport numpy as npdf = pd.DataFrame({"Growth_Type": ["Growing Fast", "Growing", "Stable", "Dropping", "Dropping Fast"],                  "Accounts": [407,1275,3785,1467,623],                  "Gain_Share": [1.20,8.1,34.4,6.5,0.4],                  "Keep_Share": [16.5, 101.2, 306.3, 107.2, 27.7]})df2 = pd.concat([pd.DataFrame({"Growth_Type":df["Growth_Type"],               "Opportunity_Type": np.repeat("Gain Share", 5),             "Wallet_Share": df["Gain_Share"]}),          pd.DataFrame({"Growth_Type":df["Growth_Type"],               "Opportunity_Type": np.repeat("Keep Share", 5),             "Wallet_Share": df["Keep_Share"]})])fig = go.Figure()fig.add_trace(go.Bar(x = df2["Wallet_Share"],                      y = df2["Growth_Type"],                     orientation = "h"                    ))fig.update_layout(font = dict(size = 12, color = "#A6ACAF"),                 xaxis_tickprefix = "$",                  plot_bgcolor = "white",                  barmode = "stack",                  margin = dict(l = 150,                                r = 250,                               b = 100,                               t = 100),                  annotations = [dict(text = 'Dropping presents a gain share<br>opportunity of $6.5 mill and a<br>keep share opportunity of $34.4 mill',                  xref = "x",                  yref = "y",                  x = 360,                  y = "Dropping",                  showarrow = False,                  yanchor = "bottom")]                 )fig.show()
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

造成这里麻烦的不是换行符;而是换行符。这是美元符号。但是您可以使用可打印的 ASCII 字符 '&#36;'来获取您想要的内容:

text = 'Dropping presents a gain share<br>opportunity of '+ '&#36;'+ '6.5 mill and a<br>keep share opportunity of ' + '&#36;'+ '34.4 mill'

阴谋:

//img1.sycdn.imooc.com/64b64ec00001b9a806350330.jpg

完整代码:

import pandas as pd

import plotly.graph_objects as go

import numpy as np


df = pd.DataFrame({"Growth_Type": ["Growing Fast", "Growing", "Stable", "Dropping", "Dropping Fast"],

                  "Accounts": [407,1275,3785,1467,623],

                  "Gain_Share": [1.20,8.1,34.4,6.5,0.4],

                  "Keep_Share": [16.5, 101.2, 306.3, 107.2, 27.7]})


df2 = pd.concat([pd.DataFrame({"Growth_Type":df["Growth_Type"], 

              "Opportunity_Type": np.repeat("Gain Share", 5),

             "Wallet_Share": df["Gain_Share"]}),

          pd.DataFrame({"Growth_Type":df["Growth_Type"], 

              "Opportunity_Type": np.repeat("Keep Share", 5),

             "Wallet_Share": df["Keep_Share"]})])


fig = go.Figure()


fig.add_trace(go.Bar(x = df2["Wallet_Share"], 

                     y = df2["Growth_Type"],

                     orientation = "h"

                    ))


fig.update_layout(font = dict(size = 12, color = "#A6ACAF"),

                 xaxis_tickprefix = "$",

                  plot_bgcolor = "white",

                  barmode = "stack",

                  margin = dict(l = 150, 

                               r = 250,

                               b = 100,

                               t = 100),

                  annotations = [dict(text = 'Dropping presents a gain share<br>opportunity of '+ '&#36;'+ '6.5 mill and a<br>keep share opportunity of ' + '&#36;'+ '34.4 mill',

                  #annotations = [dict(text = '&#36;',

                  xref = "x",

                  yref = "y",

                  x = 360,

                  y = "Dropping",

                  showarrow = False,

                  yanchor = "bottom")]

                 )


fig.show()


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信