【发布时间】: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