【发布时间】:2019-08-19 02:48:14
【问题描述】:
我正在创建一个频率图,其中还绘制了 NA 值。我试图在 x 轴刻度中为 N/A 值着色不同。我知道如何在 matplotlib 中做到这一点,但似乎无法弄清楚如何使用 plotly 做到这一点。
我尝试使用值列表更新 tickcolors 和 tickfonts,但它只希望这两个属性都有一个值。请看下面的代码
# Doesn't work - plotly expects a single value for tickcolor
fig.update_xaxes(
tickangle = -60,
tickcolor = ['black', 'black', 'black', 'black', 'red']
)
# In matplotlib the following code works fine
# It checks the text for xticklabels and changes color if it equals 'N/A'
_ = [xl.set_color('red') for xl in plt.gca().get_xticklabels() if xl.get_text() == 'N/A / Missing']
我希望它看起来像这样 - 这是我的 matplotlib 代码expected output的输出
【问题讨论】:
-
我相当有信心 plotly 不会直接提供这种能力。我能想到的唯一方法是超级复杂:在你的情节上放两个轴。除了红色刻度的刻度标签应设置为空字符串外,可以完全正常。其他轴只有一个红色刻度标签,所有其他标签都设置为空字符串。然后定位它们,使它们彼此重叠。这可能会让你开始:plot.ly/python/multiple-axes
-
@alkasm 感谢您的建议 - 它确实看起来相当令人费解,特别是因为在 matplotlib 中有一种相对简单的方法可以做到这一点。我能想到的另一种方法是在同一个图中添加 2 条迹线 - 一条为轴的黑色字体颜色,另一条为红色字体颜色。我不确定它是否会起作用,但如果我在这里没有得到答案,我会尝试一下。
-
是的,您也可以对条形图中的条形进行不同的着色,这将有助于传达信息。
标签: python matplotlib plotly