
本文详解如何使用 sx 属性精准控制 mui x charts 中 x 轴与 y 轴的线条颜色、刻度标签颜色/字体/粗细等样式,通过 css 类选择器直接作用于 svg 元素,实现深色模式适配、品牌色统一等专业图表定制需求。
本文详解如何使用 sx 属性精准控制 mui x charts 中 x 轴与 y 轴的线条颜色、刻度标签颜色/字体/粗细等样式,通过 css 类选择器直接作用于 svg 元素,实现深色模式适配、品牌色统一等专业图表定制需求。
MUI X Charts 基于 SVG 渲染,其坐标轴(Axes)并非普通 HTML 元素,而是由
以下是一个完整、可复用的坐标轴样式配置示例,已通过 MUI X v7.x 验证:
<linechart sx="{{" y .muichartsaxis-left .muichartsaxis-line stroke: strokewidth: .muichartsaxis-ticklabel fill: fontsize: fontweight: x .muichartsaxis-bottom fontfamily: sans-serif .muichartsaxis-tickcontainer letterspacing: .muichartsaxis-gridline series="{[/*" your data></linechart>
关键要点说明:
- 类名层级必须准确:.MuiChartsAxis-left 对应 Y 轴(默认左侧),.MuiChartsAxis-bottom 对应 X 轴(默认底部)。若使用 top 或 right 位置,需替换对应类名。
-
SVG 属性命名差异:使用 stroke(非 color)控制线条颜色;使用 fill(非 color)控制
标签内容(即数字/文字)颜色;strokeWidth 单位为像素(无单位数值即可)。 -
避免常见错误:
- ❌ 错误写法:"& .MuiXAxis-root line" —— MUI X v6+ 已弃用 MuiXAxis-root 等旧类名,应使用 MuiChartsAxis-* 新体系;
- ❌ 错误写法:color: "blue" —— SVG
不响应 color,必须用 fill; - ❌ 在 sx 外层尝试 style={{ ... }} —— 无效,sx 是唯一支持嵌套 CSS 选择器的入口。
-
调试建议:在浏览器中右键图表 → “检查”,展开 SVG 结构,观察
下的 和 元素,确认实际应用的类名与文档一致(官方 CSS 类参考)。
总结
MUI X Charts 的轴样式定制依赖精准的 SVG CSS 选择器,而非组件 props。掌握 .MuiChartsAxis-{position} .MuiChartsAxis-{part} 的组合规则(position = left/bottom/top/right;part = line/tickLabel/tickContainer/gridLine),即可实现企业级图表的视觉一致性。配合 sx 的响应式能力,还可轻松实现暗色模式下自动切换轴色(例如 mode === 'dark' ? '#e0e0e0' : '#424242'),无需额外主题配置。










