绘制:用两个不线性相关的x轴绘制一条迹线

地鼠

问题

我试图绘制可以表示为吸光度与波长(nm)吸光度与波数(cm -1)的数据注意转换是cm -1 = 10 -1 / nm

我希望绘制一条带有一个y轴(“吸光度”)和两个x轴(“波长(nm)”和“波长(cm -1”))的迹线。

目前,我的计划是绘制两条迹线,但保持一条不可见。但是,我不明白如何实现辅助X轴。另外,是否有一种方法可以正确缩放Wavenumber轴,以使可见图和不可见图彼此重叠?

样本数据和起始代码

import pandas as pd
import plotly.graph_objects as go

data = pd.DataFrame[{'Wavelength' = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000}
                     'Absorbance' = {1.00, 1.01, 1.02, 1.03, 1.04, 1.05, 1.04, 1.03, 1.02, 1.01}
                     }]

def nm_convert(nm):
    wavenumber = 10000000/nm
    return wavenumber

data['Wavenumber'] = nm_convert(data['Wavelength'])

trace1 = go.Scatter(x=dataset['Wavelength'], y=dataset['Absorbance'], mode='lines', line=dict(width=1.5), name='nm_trace')
trace2 = go.Scatter(x=dataset['Wavenumber'], y=dataset['Absorbance'], name='cm-1 trace', visible=False)


范例图片

我已经举例说明了可能要寻找的结果。但是,我愿意接受其他建议。

在此处输入图片说明

日惹

这里有几个问题,我相信@vestland已经回答了主要问题。但是要扩展他的答案并解决您的第二个问题,您可以结合使用tickvalsticktext实现第二个轴的“缩放”,这是这里的另一个示例

以下是从《战地》的作品改编而成的示例,并附有以下评论

  • 这里有两个系列,第二个未显示 opacity=0
  • xaxis2tickvalsWavelength,但ticktext被设置为Wavenumber(四舍五入也有round
  • 在第一个系列上使用customdatahovertemplate提供统一的悬停
import pandas as pd
import plotly.graph_objects as go

data = pd.DataFrame({'Wavelength' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000],
                     'Absorbance' : [1.00,1.01,1.02,1.03,1.04,1.05,1.04,1.03,1.02,1.01]})
data['Wavenumber'] = 10000000/data['Wavelength']

fig = go.Figure()
fig.add_traces(go.Scatter(x=data['Wavelength'], 
                          y=data['Absorbance'],
                          customdata=data['Wavenumber'],
                          showlegend=False,
                          hovertemplate=
                            "Wavelength: %{x}<br>" +
                            "Wavenumber: %{customdata:.0f}<br>" +
                            "Absorbance: %{y}" +
                            "<extra></extra>",))
fig.add_traces(go.Scatter(x=data['Wavelength'], 
                          y=data['Absorbance'], 
                          showlegend=False, 
                          opacity=0, 
                          hoverinfo='skip',
                          xaxis="x2"))

fig.update_layout(xaxis= {'title':'Wavelength','showgrid':False,})
fig.update_layout(yaxis= {'title':'Absorbance','showgrid':False,})
fig.update_layout(xaxis2= {'title':'Wavenumber', 'showgrid':False,
                           'anchor': 'y', 
                           'overlaying': 'x', 
                           'side': 'top',
                           'tickvals':data['Wavelength'],
                           'ticktext':data['Wavenumber'].round(decimals=-2)})
fig.show()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

绘制:用两个不线性相关的x轴绘制一条迹线

来自分类Dev

在d3js中的两个y轴之间绘制一条线

来自分类Dev

用一个y轴和两个x轴绘制两组数据

来自分类Dev

MATLAB中1个剩余值的线性相关

来自分类Dev

如何在画布上的两个点之间绘制一条曲线?

来自分类Dev

在两个div之间绘制一条静态线

来自分类Dev

ggplot2:在两个值之间绘制一条线

来自分类Dev

当两个折线图相交时绘制一条垂直线-SSRS

来自分类Dev

尝试绘制多个圆,但两个圆都用一条线连接

来自分类Dev

如何用pcolor用两个x轴绘制一个2D函数?的MATLAB

来自分类Dev

如何绘制两个X轴的功率?

来自分类Dev

如何绘制直方图的两个水平x轴标签?

来自分类Dev

这三个向量与k的值线性相关

来自分类Dev

如何在JavaFX ScatterChart中从点到X轴绘制一条线?

来自分类Dev

在R中找到非线性相关性

来自分类Dev

r-在ggplot中用一个x轴绘制两个图(3个变量)

来自分类Dev

r-在ggplot中用一个x轴绘制两个图(3个变量)

来自分类Dev

在MATLAB中绘制带有两个y轴和多个条的条形图

来自分类Dev

python熊猫绘制两个y轴的偏移x轴

来自分类Dev

用多种线型绘制一条线

来自分类Dev

在x轴R上为每一列和时间序列绘制一条线

来自分类Dev

Matplotlib:如何绘制两个具有相同x / y轴但一个沿y轴从另一个开始的条形图

来自分类Dev

如何绘制两个连续值之间的线性回归?

来自分类Dev

如何在同一面板的同一X轴上绘制具有两个不同y轴范围的点?

来自分类Dev

如何在pyqtgraph的一个轴上绘制两个barh?

来自分类Dev

如何在一个轴上绘制两个树皮?

来自分类Dev

为两个不同的数据集绘制相同的x轴

来自分类Dev

如何通过从两个不同的列中获取x轴值来进行绘制?

来自分类Dev

以第三个为x轴绘制两个数据框列

Related 相关文章

  1. 1

    绘制:用两个不线性相关的x轴绘制一条迹线

  2. 2

    在d3js中的两个y轴之间绘制一条线

  3. 3

    用一个y轴和两个x轴绘制两组数据

  4. 4

    MATLAB中1个剩余值的线性相关

  5. 5

    如何在画布上的两个点之间绘制一条曲线?

  6. 6

    在两个div之间绘制一条静态线

  7. 7

    ggplot2:在两个值之间绘制一条线

  8. 8

    当两个折线图相交时绘制一条垂直线-SSRS

  9. 9

    尝试绘制多个圆,但两个圆都用一条线连接

  10. 10

    如何用pcolor用两个x轴绘制一个2D函数?的MATLAB

  11. 11

    如何绘制两个X轴的功率?

  12. 12

    如何绘制直方图的两个水平x轴标签?

  13. 13

    这三个向量与k的值线性相关

  14. 14

    如何在JavaFX ScatterChart中从点到X轴绘制一条线?

  15. 15

    在R中找到非线性相关性

  16. 16

    r-在ggplot中用一个x轴绘制两个图(3个变量)

  17. 17

    r-在ggplot中用一个x轴绘制两个图(3个变量)

  18. 18

    在MATLAB中绘制带有两个y轴和多个条的条形图

  19. 19

    python熊猫绘制两个y轴的偏移x轴

  20. 20

    用多种线型绘制一条线

  21. 21

    在x轴R上为每一列和时间序列绘制一条线

  22. 22

    Matplotlib:如何绘制两个具有相同x / y轴但一个沿y轴从另一个开始的条形图

  23. 23

    如何绘制两个连续值之间的线性回归?

  24. 24

    如何在同一面板的同一X轴上绘制具有两个不同y轴范围的点?

  25. 25

    如何在pyqtgraph的一个轴上绘制两个barh?

  26. 26

    如何在一个轴上绘制两个树皮?

  27. 27

    为两个不同的数据集绘制相同的x轴

  28. 28

    如何通过从两个不同的列中获取x轴值来进行绘制?

  29. 29

    以第三个为x轴绘制两个数据框列

热门标签

归档