Построение данных Excel с помощью функции, указывающей, какой столбец использовать для цветовой шкалы - PullRequest
0 голосов
/ 16 ноября 2018

Извините, я очень новичок в кодировании и надеюсь, что все в порядке, чтобы спросить.

У меня есть таблица 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 как часть функции, чтобы она могла быть построена (рабочая тетрадь, имена, Z) гдеZ может быть столбцом Z1 или Z2.Надеюсь, что это имеет смысл.

1 Ответ

0 голосов
/ 16 ноября 2018

Просто в качестве примера:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...