|
|
是的,在 Plotly.js 中可以轻松实现柱状折线组合图,让柱状图和折线图共享 x 坐标,并分别拥有独立的 y 坐标。这通过配置双 y 轴(主次坐标轴)来完成。
关键点:
- 共享 x 轴:两个 trace 使用相同的 x 数据。
- 独立 y 轴:为柱状图和折线图分配不同的 y 轴,例如主 y 轴(左侧)和次 y 轴(右侧)。
下面是一个示例代码,展示如何创建这种图表:
- // 假设页面中有一个 id 为 'chart' 的 div 元素
- // 定义柱状图 trace(使用第一个 y 轴)
- var barTrace = {
- x: ['A', 'B', 'C', 'D'],
- y: [20, 14, 23, 35],
- type: 'bar',
- name: '柱状图',
- yaxis: 'y' // 指定使用主 y 轴
- };
- // 定义折线图 trace(使用第二个 y 轴)
- var lineTrace = {
- x: ['A', 'B', 'C', 'D'],
- y: [12, 18, 29, 42],
- type: 'scatter',
- mode: 'lines+markers',
- name: '折线图',
- yaxis: 'y2' // 指定使用次 y 轴
- };
- // 配置布局,定义两个 y 轴
- var layout = {
- title: '柱状折线组合图示例',
- xaxis: {
- title: '共享的 x 坐标'
- },
- yaxis: {
- title: '柱状图 y 轴',
- side: 'left'
- },
- yaxis2: {
- title: '折线图 y 轴',
- overlaying: 'y', // 覆盖在主 y 轴上
- side: 'right' // 显示在右侧
- }
- };
- // 绘制图表
- Plotly.newPlot('chart', [barTrace, lineTrace], layout);
复制代码
说明:
- barTrace 使用 yaxis: 'y',关联主 y 轴(左侧)。
- lineTrace 使用 yaxis: 'y2',关联次 y 轴(右侧)。
- 在 layout 中,yaxis2 通过 overlaying: 'y' 与主 y 轴重叠,实现共享 x 轴。
这样,柱状图和折线图就共享了 x 坐标,但各自拥有独立的 y 坐标轴。记得在 HTML 中引入 Plotly.js 库(例如通过 CDN)才能运行此代码。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|