【问题标题】:Changing tick label colour in mpld3在 mpld3 中更改刻度标签颜色
【发布时间】:2017-09-16 18:13:14
【问题描述】:

我正在尝试使用 matplotlib 和 mpld3 绘制东西。这是我用来生成图表的代码:

_fig = plt.figure()
_pl = _fig.add_subplot(111)
_pl.plot(_times, _values)
_pl.set_xlabel("Time")
_pl.set_ylabel("Value")

_pl.tick_params(direction="out", axis="both", colors="white", which="both")
_pl.xaxis.label.set_color("white")
_pl.yaxis.label.set_color("white")

_data = mpld3.fig_to_html(_fig)
.... send to client to be rendered

创建了一个图表,所有动态控件都工作了。 “时间”和“值”标签以白色打印,但刻度标签以黑色打印。

如果我跳过 mpld3 并使用 plt.show() 对其进行测试,所有刻度标签都会以白色打印。当我检查 mpld3 生成的 javascript 代码时,我似乎没有检测到刻度标签的颜色设置。

如果我在 tick_params 中使用另一个参数,例如字体大小,它确实会产生影响。只有颜色会被忽略,这会导致标签在深蓝色背景上以黑色打印。

我该如何更改?

编辑:

检查实际呈现的页面时,似乎有一个“填充”属性决定了颜色。

div#fig_el249691400950908834083380374260 .mpld3-xaxis text 
{font-family:sans-serif; font-size:10px; fill:black; stroke:none; }

我尝试在 css 中覆盖它,但我不知道该怎么做。这似乎覆盖了我在其他地方设置的任何内容。似乎 mpld3 设置了刻度标签的颜色,但我该如何修改呢?

汉努

【问题讨论】:

  • 这个list of known issues 可能很有趣,它说:“刻度位置和刻度格式未准确反映”。
  • 也许它是一个功能。快速而肮脏的解决方法是更改​​背景颜色。我的页面在纯深蓝色背景下看起来不像以前那么漂亮了,但至少标签是可见的。
  • 我也有这个问题;我知道不支持刻度格式,但是(鉴于这不太可能很快得到支持)更好的解决方法是在 CSS 中覆盖它。我会继续寻找。
  • 好的,我目前的工作是更改 mpld3 javascript 库,使轴和刻度标签为白色。我将 mpld3.v0.3.js 的第 290 和 291 行更改为:fontcolor: "white",axiscolor: "white",。据我所知,没有办法设置这个很可惜。

标签: python-2.7 matplotlib mpld3


【解决方案1】:

mpld3 仅支持 matplotlib 全部功能的一个子集,而刻度格式是尚不支持的众多功能之一。在mpld3 wiki 上有这些缺失功能的部分列表。

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 2011-06-13
    相关资源
    最近更新 更多