我试着用二维颜色图来测量我的低温传输。这些数据被采集并保存在一系列.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个文件。我导入了所有文件并将它们连接到一个熊猫dataframe中,如下所示:
B, T, V, I
0,4.01,-10.0,0.001
0,4.02,-9.9,0.001
...
0.2,4.01,-10.0,0.001
0.2,4.02,-9.9,0.001
...
0.4,4.01,-10.0,0.001
0.4,4.02,-9.9,0.001
...现在,我想用V和B作为x和y轴,i作为z(颜色)绘制一个2D颜色图。我怎么用Holoview.Image做这件事?
我知道可以使用海运热图来完成这一任务,但我想使用全景视图进行交互、绘图和其他功能。它也适用于Holoviews.HeatMap,但是HeatMap有一些问题。HeatMap轴是绝对的,而不是数字的,这使得设置xticks、xlim等变得困难和不直观(例如:Changing ticks mark period in Holoviews heatmap)。
Holoviews.Image更适合我的数据,但它只接受网格数据,而不是像熊猫数据那样的柱状数据。
简单地说,我的问题是如何将pandas dataframe转换为网格数据,以便在Holoviews.Image元素中进行绘图。
发布于 2019-05-03 05:36:55
ahuang11在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,但这不重要)
ds = hv.Dataset(df_xarray,['B', 'V'] , 'I')
ds.to(hv.Image, ['B', 'V'], 'I')https://stackoverflow.com/questions/55962945
复制相似问题