Nano Hash - криптовалюты, майнинг, программирование

Как я могу наложить коробочную диаграмму на точечную диаграмму в Matlab или R?

Как сделать рисунок, показанный в ссылке 1 в Matlab или R? Я искал в google и stackoverflow, но не нашел то, что мне нужно.

введите здесь описание изображения

Мне нужно наложить коробчатую диаграмму на точечную диаграмму в Matlab или R, чтобы показать распределение данных, или есть ли какие-либо другие методы или программное обеспечение для реализации того, что мне нужно?

Это мой первый раз, когда я задаю вопросы в stackoverflow, и мой английский очень общий, и, возможно, я сделал что-то неуместное. Так что, пожалуйста, прости меня и помоги мне. О(∩_∩)О~

Как я могу наложить коробочную диаграмму на точечную диаграмму в Matlab или R?



Ответы:


1

В R вы могли бы сделать что-то вроде Возможно, что-то вроде

#sample data
dd<-data.frame(x=runif(100))
br=seq(0,1,length.out=6)
cent<-(br[-1] +br[-length(br)])/2
dd<-transform(dd, y = x+rnorm(100, .2, .05),
   xcut = cut(x, breaks=br))

#plot
plot(y~x, dd)
boxplot(y~xcut, dd, add=T, at=cent, boxwex=(br[2]-br[1]) * 3/4, xaxt="n")

который производит

введите здесь описание изображения

Хитрость заключается в том, чтобы просто использовать cut() вдоль оси x, чтобы разбить диапазон на отдельные фрагменты, для которых вы хотите нарисовать диаграммы. Затем вы просто рисуете сверху и выстраиваете вещи.

24.09.2014
  • Да, это полезно, и я понял, что вы даете в Matlab, прежде чем задать этот вопрос. Но результат все равно отличается от того, что мне нужно. Может ли коробка быть тонкой, а фигура красочной, как в приведенной ссылке? Нужная мне фигура используется во многих статьях, и, возможно, есть какие-то методы, чтобы реализовать ее простым способом. 24.09.2014
  • Например: Симини, Ф., Гонз А. Лез, М. С., Маритан, А. и Бараб А. Си, А. Л. (2012). Универсальная модель моделей мобильности и миграции. Природа. и Лю Ю., Суй З., Канг К. и Гао Ю. (2014). Выявление закономерностей междугородних поездок и пространственного взаимодействия на основе данных регистрации в социальных сетях. PLoS ONE 9(1): e86026. 24.09.2014
  • Конечно. Подробнее читайте на странице справки ?boxplot. Вы не очень подробно описали в своем вопросе, что именно нужно. Я просто хотел указать вам правильное направление. Я надеюсь, что вы можете настроить форму здесь. Если вы снова застряли, задайте другой, более конкретный вопрос о переполнении стека. Убедитесь, что вы также включили воспроизводимый пример в свой вопрос, который имеет данные, подобные тем, которые вы хотите построить. 24.09.2014
  • ОК! Большое спасибо! Поскольку пришло время задать вопрос, а мое плохое знание английского языка ограничивает мое выражение, я задаю этот вопрос неуместным образом. Я исправлюсь в будущем! Большое спасибо! О(∩_∩)О~ 24.09.2014

  • 2

    Это мои коды Matlab, чтобы понять, что мне нужно, но я все еще не удовлетворяю.

    function handle = scatterbox(x,y,n,varargin)
    % handle = sactter_box(x,y,n[,'pointsize',size,'pointcolor',color,'pointmarker',marker])
    % x——x;
    % y——y;
    % n——the number of boxes;
    % pointsize——point size(default value is 100);
    % pointcolor——point color(default value is [hex2dec('ad')/256 hex2dec('ad')/256 hex2dec('ad')/256]);
    % pointmarker——point marker(default value is '.');
    
    %% 检查参数输入个数,并读取可选参数
    if nargin<3
    error('至少包含x、y和n等3个必要参数!');
    elseif nargin>3 && nargin<9 && mod(nargin,2)==0
    error('参数输入应为3、5、7或9个!')
    elseif nargin>9
    error('参数输入超过最大9个!')
    else
    %设置可选参数默认值
    pointsize    = 36;
    pointcolor   = [hex2dec('ad')/256 hex2dec('ad')/256 hex2dec('ad')/256];
    pointmarker  = '.';
    
    %读取可选参数
    Arguments = varargin;
    while length(Arguments)>=2 %设置循环条件
    Property = Arguments{1}; %获取参数名称
    Value = Arguments{2}; %获取参数值
    Arguments = Arguments(3:end); %循环设置,取剩余参数
    switch Property %判断可选参数
    case 'pointsize'
    if isa(Value,'numeric')
    pointsize = Value;
    else
    error('size参数应为数字!')
    end
    case 'pointcolor'
    if find(strcmp({'y' 'm' 'c' 'r' 'g' 'b' 'w' 'k'},Value))    %用字母表示颜色
    pointcolor = Value;
    elseif isa(Value,'numeric') && sum(size(Value)==[1 3])==2   %用二维矩阵表示颜色
    pointcolor = Value;
    else
    error('color参数应为颜色格式!')
    end
    case 'pointmarker'
    if find(strcmp({'o' '+' '*' '.' 'x' 's' 'd' '^' 'v' '>' '<' 'p' 'h' 'none'},Value))
    pointmarker = Value;
    else
    error('marker参数应为符号字符!')
    end
    otherwise
    error('参数名输入出错!');
    end
    end
    end
    
    %% scatterbox
    handle = scatter(x,y,pointsize,pointcolor,pointmarker);    %作散点图
    
    limits = axis(gca); %获取坐标范围
    box_datarange = (limits(2)-limits(1))/n;    %获取箱线图对应数据范围
    box_position = limits(1)-box_datarange/2+box_datarange*[1:n];   %获取箱线图x轴位置
    
    hold on;
    for i=1:n    %通过循环作箱线图
    box_data = y(x>=box_position(i)-box_datarange/2 & x<box_position(i)+box_datarange/2);   %获取箱线图数据
    if length(box_data)>3   %仅当数据量大于3时作箱线图
    boxplot(box_data,...
    'positions',box_position(i),... %设置箱线图位置
    'plotstyle','compact',...   %设置箱线图样式
    'colors',[0 hex2dec('91')/256 0],...    %设置箱线图颜色
    'symbol','');    %设置异常值散点符号为空,即不显示异常值
    set(gca,'XTickLabel',{''}); %清除x轴箱线图产生标注
    end
    end
    
    axis(gca,limits);   %恢复原坐标范围
    set(gca,'XTickLabelMode','auto','XTickMode','auto');    %恢复默认刻度和标注
    
    end
    
    24.09.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..