抱歉,我对编码非常陌生,希望可以问问。
我有一个具有多个工作表的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列。希望这有道理。
答案 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)