首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Pandas数据图绘制Holoviews.Image

用Pandas数据图绘制Holoviews.Image
EN

Stack Overflow用户
提问于 2019-05-03 03:31:34
回答 1查看 527关注 0票数 2

我试着用二维颜色图来测量我的低温传输。这些数据被采集并保存在一系列.dat文件中。数据如下所示:

代码语言:javascript
复制
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中,如下所示:

代码语言:javascript
复制
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元素中进行绘图。

EN

回答 1

Stack Overflow用户

发布于 2019-05-03 05:36:55

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

代码语言:javascript
复制
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. 使用df.set_index()将x和y轴的列设置为索引。
  2. 使用df.to_xarray()将熊猫数据转换为xarray。
  3. 使用xarray绘制或创建全息视图数据集:
代码语言:javascript
复制
ds = hv.Dataset(df_xarray,['B', 'V'] , 'I')
ds.to(hv.Image, ['B', 'V'], 'I')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55962945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档