【问题标题】:Contour plots in python with time on X-Axispython中的等高线图与X轴上的时间
【发布时间】:2021-09-15 11:04:01
【问题描述】:

我希望用下面给出的示例数据在 python 中绘制等高线图:- X 轴(时间) Y 轴(D) Z 轴(C) 15:18:48 10 26 15:18:49 11 28 15:18:50 13 30 . . . . . . 下面给出的是我的代码

enter code here
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
load_var=pd.read_excel(r'path\file.xlsx')
x=pd.DataFrame(load_var['Time'])
y=pd.DataFrame(load_var['D'])
z=pd.DataFrame(load_var['C'])
plt.contour(x,y,z)

错误:TypeError:不可散列的类型:'numpy.ndarray' 请解开以下疑惑: 1] 如何使用 X 轴作为时间和 Y 轴作为“D”下提到的值来创建网格? 2] 请在代码中提出更新建议。

谢谢。

【问题讨论】:

    标签: python python-3.x pandas matplotlib contourf


    【解决方案1】:

    正如documentation 所述,plt.contour 的 'Z' 参数的大小应为 (M, N):如果 x, y 有 500 个值,则 z 的大小应为 (500, 2)。

    您提供z,这是一个单列,也就是 (500, 1)。这不是等高线图的工作原理。

    P.S - 不需要pd.DataFrame(load_var['C']),您可以直接使用load_var['C']。 示例:

    df = pd.DataFrame({'x': [0.2, 0.1, 0.5], 'y': [34.2, 73.1, 43.5], 'z':[105, 108, 101], 'z2':[105, 108, 101], 'z3':[105, 108, 101]})
    plt.contour(df.x,df.y, df[['z', 'z2', 'z3']])
    plt.show()
    

    输出:

    【讨论】:

    • 我会尝试这种建议的方式并回复你。
    • 能否请您解决上面数据中提到的在 x 轴上有时间的问题?
    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2020-09-18
    相关资源
    最近更新 更多