情节全息影像使用熊猫数据帧

2022-12-05 02:47:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着做一个低温输运测量的二维彩色图。数据被采集并保存在一系列.dat文件中。数据如下:

B (T), T(K) , V (V), I (A)
0,     4.01, -10.0, 0.001
0,     4.02, -9.9, 0.001
...

每个文件都是在特定磁场下拍摄的。(0到2个Telsa,0.2T步长)共11个文件。我导入了所有文件,并将它们连接到一个pandas dataframe,如下所示:

^{pr2}$

现在我想做一个二维彩色图,V和B是x和y轴,I是z(颜色)。如何使用Holoview.Image?在

我知道使用海生热图可以实现这一点,但我想使用holoview进行交互式绘图和其他功能。它也适用于Holoviews.HeatMap,但是{}有一些问题。热图轴是绝对的而不是数字的,这使得设置xtick、xlim等变得困难且不直观(例如:Changing ticks mark period in Holoviews heatmap

Holoviews.Image更适合我的数据,但它只接受网格数据,而不接受像pandas dataframe这样的列式数据。在

我想,简而言之,我的问题是如何将pandas dataframe转换为网格数据,以便在Holoviews.Image元素中绘图。在


Tags: 文件数据image网格绘图dataframepandas低温dat彩色holoviews热图步长磁场telsa
1条回答
网友
1楼 · 发布于 2022-12-05 02:47:16

阿黄11在GitHub上回答:https://github.com/pyviz/holoviews/issues/3686#issuecomment-488932024

import pandas as pd
import holoviews as hv
import hvplot.xarray

df = pd.DataFrame({
    'B': [0, 1, 2],
    'T': [2, 3, 4],
    'I': [5, 6, 7]
}).set_index(['B', 'T'])
df.to_xarray().hvplot.image('B', 'T', cmap='RdBu_r')

(我想把V画成x轴而不是T,但这没关系)

  1. 使用将用于x和y轴的列设置为索引数据集索引(). 在
  2. 使用东至萨雷()将pandas数据帧转换为xarray。在
  3. 使用xarray绘制或创建全息视图数据集:
^{pr2}$