使用指定用于色条的列的函数绘制Excel数据

时间:2018-11-16 12:58:30

标签: python excel pandas matplotlib colorbar

抱歉,我对编码非常陌生,希望可以问问。

我有一个具有多个工作表的excel电子表格,它们具有X,Y,Z1和Z2列,例如:

X   Y   Z1  Z2
726841.75   7836563.42  21.78   4.26
726709.69   7836391.55  29.81   14.99
726633.57   7836014.98  33.61   19.18
726596.34   7835726.40  55.67   38.04
726562.61   7835415.88  63.88   21.60
726529.13   7835185.27  58.39   28.52
726494.13   7834882.61  61.48   22.97

我想遍历图纸并绘制X和Y(作为坐标),并通过指定函数中的哪一个将Z1或Z2作为颜色属性。

到目前为止,我可以绘制X和Y并将Z1作为颜色条:

import pandas as pd
import matplotlib.pyplot as plt

def plot(workbook, names):
    for sheet in names:
        df = pd.read_excel(workbook, sheet_name=(sheet))
        plt.scatter(df["X"], df["Y"], c=df["Z1"],cmap='viridis', vmin=0, vmax=650)

workbook = pd.ExcelFile('test.xlsx')
names = workbook.sheet_names

但是我想将Z1与Z2交换为函数的一部分,因此它可以是plot(工作簿,名称,Z),其中Z可以是Z1或Z2列。希望这有道理。

1 个答案:

答案 0 :(得分:0)

仅作为示例:

def plot(workbook, names, c_col):
    for sheet in names:
        df = pd.read_excel(workbook, sheet_name=(sheet))
        plt.scatter(df['X'], df['Y'], c=df[c_col], cmap='viridis', vmin=0, vmax=650)
plot('test.xlsx', names, 'Z2')

请注意,pandas构建在matplotlib之上,因此,如果您的数据在pandas数据框中,则可以从matplotlib访问一些便捷的绘图功能。
您可能想尝试例如:

df.plot.scatter('X', 'Y', c=c_col, cmap='viridis', vmin=0, vmax=650)