В этом примере показано, как получить зарплату и данные о травме из STATS.com для отдельных бейсболистов. Чтобы сравнить зарплаты проигрывателей с и без травм, визуализируйте данные в графике рассеивания.
Этот пример требует ключа API STATS.com и секретного кода передачи для бейсбольных данных. Для получения дополнительной информации о ваших учетных данных для доступа к данным, свяжитесь с STATS.com.
Чтобы получить доступ к коду для этого примера, введите edit MLBSalaryVsInjuryExample.m.
Создайте связь STATS.com sBaseball поскольку извлечение статистических бейсбольных данных для спортивной лиги назвало 'mlb'. Настройте связь, чтобы получить данные о зарплате путем определения параметра запроса 'Resource' как 'salaries'.
sBaseball = statsllc('gkfrq6fxabcehmn2yctrc6j5','qYR5abCQgc', ... 'DataType','stats','LeagueAbbreviation','mlb', ... 'Resource','salaries','SportName','baseball', ... 'VersionNumber','v1');
Получите отдельные зарплаты бейсболиста data использование sBaseball.
data = fetch(sBaseball);
Получать отдельные данные бейсболиста playerData, получите доступ к вложенной структуре data. Создайте таблицу данных зарплаты salaryData путем получения полей структуры в playerData.
playerData = [data.apiResults.league.season.salaries.player]; salaryData = table((1:data.recordCount)',[playerData.playerId]', ... {playerData.firstName}',{playerData.lastName}', ... [data.apiResults.league.season.salaries.salary]', ... false(data.recordCount,1), ... 'VariableNames',{'Record','PlayerId','FirstName', ... 'LastName','Salary','Injured'});
salaryData содержит эти имена столбцов:
Record — Номер записи
PlayerId — Идентификатор бейсболиста
FirstName — Имя бейсболиста
LastName — Фамилия бейсболиста
Salary — Зарплата бейсболиста
Injured — Бейсболист ранил состояние
Раненное состояние бейсболиста является заполнителем для данных о травме.
Чтобы получить данные о травме, измените параметр запроса Resource значение от 'salaries' к 'participants' в связи STATS.com sBaseball. Получите отдельные данные бейсболиста с помощью sBaseball.
pause(2)
sBaseball.Resource = 'participants';
data = fetch(sBaseball);Цикл через получившуюся вложенную структуру data для каждого проигрывателя. Установите травмированное состояние в salaryData для тех проигрывателей, которые ранены.
numPlayers = data.recordCount; for i = 1:numPlayers playerId = data.apiResults.league.players{i}.playerId; salaryData.Injured(salaryData.PlayerId == playerId) ... = data.apiResults.league.players{i}.isInjured; end
Создайте график рассеивания зарплаты для каждого бейсболиста.
sInjured = scatter(salaryData.Record(salaryData.Injured), ... salaryData.Salary(salaryData.Injured),'Marker','+', ... 'Linewidth',2); hold on sNotInjured = scatter(salaryData.Record(~salaryData.Injured), ... salaryData.Salary(~salaryData.Injured),'Marker','O', ... 'Linewidth',2); hold off sInjured.MarkerFaceColor = 'flat' grid on b = gca title('Player Salary Comparison') xlabel('Record') ylabel('Salary') ytickformat(b,'usd') legend({'Player with Injury','Player Without Injury'},'Location','best')
График рассеивания бейсболистов и их отображений зарплат. Сравните зарплаты для травмированных и непострадавших бейсболистов.
