Main Content

scatterhistogram

Create scatter plot with histograms

  • Scatter plot with histograms

Description

example

scatterhistogram(tbl,xvar,yvar)creates a scatter plot with marginal histograms from the tabletbl. Thexvarinput indicates the table variable to display along thex-axis. Theyvarinput indicates the table variable to display along they-axis.

example

scatterhistogram(tbl,xvar,yvar,'GroupVariable',grpvar)uses the table variable specified bygrpvarto group observations specified byxvarandyvar.

example

scatterhistogram(xvalues,yvalues)creates a scatter plot of the data inxvaluesandyvaluesand displays the marginal histograms for thexvaluesandyvaluesdata along thex-axis andy-axis, respectively.

example

scatterhistogram(xvalues,yvalues,'GroupData',grpvalues)uses the data ingrpvaluesto group the data inxvaluesandyvalues.

example

scatterhistogram(___,Name,Value)specifies additional options for the scatter plot with marginal histograms using one or more name-value pair arguments. Specify the options after all other input arguments. For a list of properties, seeScatterHistogramChart Properties.

scatterhistogram(,___)creates the scatter plot with marginal histograms in the figure, panel, or tab specified by.

example

s= scatterhistogram(___)returns theScatterHistogramChartobject. Usesto modify the object after you create it. For a list of properties, seeScatterHistogramChart Properties.

Examples

collapse all

Create a scatter plot with marginal histograms from a table of data for medical patients.

Load thepatientsdata set and create a table from a subset of the variables loaded into the workspace. Then, create a scatter histogram chart comparing the Heightvalues to the Weightvalues.

loadpatientstbl = table(LastName,Age,Gender,Height,Weight); s = scatterhistogram(tbl,'Height','Weight');

Figure contains an object of type scatterhistogram.

Using thepatientsdata set, create a scatter plot with marginal histograms and specify the table variable to use for grouping the data.

Load thepatients数据集和创建一个散射直方图图the data. Compare the patients'SystolicandDiastolicvalues. Group the data according to the patients' smoker status by setting the'GroupVariable'name-value pair argument to'Smoker'.

loadpatientstbl = table(LastName,Diastolic,Systolic,Smoker); s = scatterhistogram(tbl,'Diastolic','Systolic','GroupVariable','Smoker');

Figure contains an object of type scatterhistogram.

Use a scatter plot with marginal histograms to visualize categorical and numeric medical data.

Load thepatientsdata set, and convert theSmokerdata to a categorical array. Then, create a scatter histogram chart that compares patients'Agevalues to their smoker status. The resulting scatter plot contains overlapping data points. However, they-axis marginal histogram indicates that there are far more nonsmokers than smokers in the data set.

loadpatientsSmoker = categorical(Smoker); s = scatterhistogram(Age,Smoker); xlabel('Age') ylabel('Smoker')

Figure contains an object of type scatterhistogram.

Create a scatter plot with marginal histograms using arrays of shoe data. Group the data according to shoe color, and customize properties of the scatter histogram chart.

Create arrays of data. Then, create a scatter histogram chart to visualize the data. Use custom labels along thex-axis andy-axis to specify the variable names of the first two input arguments. You can specify the title, axis labels, and legend title by setting properties of theScatterHistogramChartobject.

xvalues = [7 6 5 6.5 9 7.5 8.5 7.5 10 8]; yvalues = categorical({'onsale','regular','onsale','onsale',...'regular','regular','onsale','onsale','regular','regular'}); grpvalues = {'Red','Black','Blue','Red','Black','Blue','Red',...'Red','Blue','Black'}; s = scatterhistogram(xvalues,yvalues,'GroupData',grpvalues); s.Title ='Shoe Sales'; s.XLabel ='Shoe Size'; s.YLabel ='Price'; s.LegendTitle ='Shoe Color';

Change the colors in the scatter histogram chart to match the group labels. Change the histogram bin widths to be the same for all groups.

s.Color = {'Red','Black','Blue'}; s.BinWidths = 1;

Figure contains an object of type scatterhistogram. The chart of type scatterhistogram has title Shoe Sales.

Create a scatter plot with marginal histograms. Specify the number of bins and line widths of the histograms, the location of the scatter plot, and the legend visibility.

Load thepatients数据集和创建一个散射直方图图the data. Compare the patients'DiastolicandSystolicvalues, and group the data according to the patients'SelfAssessedHealthStatusvalues. Adjust the histograms by specifying theNumBinsandLineWidthoptions. Place the scatter plot in the'NorthEast'location of the figure by using theScatterPlotLocationoption. Ensure the legend is visible by specifying theLegendVisibleoption as'on'.

loadpatientstbl = table(LastName,Diastolic,Systolic,SelfAssessedHealthStatus); s = scatterhistogram(tbl,'Diastolic','Systolic','GroupVariable','SelfAssessedHealthStatus',...'NumBins',4,'LineWidth',1.5,'ScatterPlotLocation','NorthEast','LegendVisible','on');

Figure contains an object of type scatterhistogram.

Create a scatter plot with marginal histograms. Group the data by using a combination of two different variables.

Load thepatientsdata set. Combine theSmokerandGenderdata to create a new variable. Create a scatter histogram chart that compares theDiastolicandSystolicvalues of the patients. Use the new variableSmokerGenderto group the data in the scatter histogram chart.

loadpatients[idx,genderStatus,smokerStatus] = findgroups(string(Gender),string(Smoker)); SmokerGender = strcat(genderStatus(idx),"-",smokerStatus(idx)); s = scatterhistogram(Diastolic,Systolic,'GroupData',SmokerGender,'LegendVisible','on'); xlabel('Diastolic') ylabel('Systolic')

Figure contains an object of type scatterhistogram.

Create a scatter plot with kernel density marginal histograms. This example requires a Statistics and Machine Learning Toolbox™ license.

Load thecarsmall数据集和创建一个散射直方图图the data. Compare theHorsepowerandMPGvalues. Use the number of cylinders to group the data by setting theGroupVariableoption toCylinders. Specify kernel density histograms by setting theHistogramDisplayStyleoption to'smooth'. Specify a solid line for all the histograms by setting theLineStyleoption to“- - -”.

loadcarsmalltbl = table(Horsepower,MPG,Cylinders); s = scatterhistogram(tbl,'Horsepower','MPG',...'GroupVariable','Cylinders','HistogramDisplayStyle','smooth',...'LineStyle',“- - -”);

Input Arguments

collapse all

Source table, specified as a table.

You can create a table from workspace variables using thetablefunction, or you can import data as a table using thereadtablefunction.

TheSourceTableproperty of theScatterHistogramChartobject stores the source table.

Table variable forx-axis, specified in one of these forms:

  • Character vector or string scalar — Indicating one of the variable names. For example,scatterhistogram(tbl,'Acceleration','Horsepower')selects the variable named'Acceleration'for thex-axis.

  • Numeric scalar — Indicating the table variable index. For example,scatterhistogram(tbl,5,3)selects the fifth variable in the table for thex-axis.

  • Logical vector — Containing onetrueelement.

The values associated with your table variable must be of a numeric type orcategorical.

TheXVariableproperty of theScatterHistogramChartobject stores the selected variable name.

Table variable fory-axis, specified in one of these forms:

  • Character vector or string scalar — Indicating one of the variable names. For example,scatterhistogram(tbl,'Acceleration','Horsepower')selects the variable named'Horsepower'for they-axis.

  • Numeric scalar — Indicating the table variable index. For example,scatterhistogram(tbl,5,3)selects the third variable in the table for they-axis.

  • Logical vector — Containing onetrueelement.

The values associated with your table variable must be of a numeric type orcategorical.

TheYVariableproperty of theScatterHistogramChartobject stores the selected variable name.

Table variable for grouping data, specified in one of these forms:

  • Character vector or string scalar — Indicating one of the variable names

  • Numeric scalar — Indicating the table variable index

  • Logical vector — Containing onetrueelement

The values associated with your table variable must form a numeric vector, logical vector, categorical array, string array, or cell array of character vectors.

grpvarsplits the data inxvarandyvarinto unique groups. Each group has a default color and an independent histogram in each axis. In the legend,scatterhistogramdisplays the group names in order of their first appearance inGroupData.

Example:'Model_Year'

Example:2

Values appearing along thex-axis, specified as a numeric vector or categorical array.

TheXDataproperty of theScatterHistogramChartobject stores thexvaluesdata.

Example:[0.5 4.3 2.4 5.6 3.4]

Example:categorical({'small','medium','small','large','medium','small'})

Values appearing along they-axis, specified as a numeric vector or categorical array.

TheYDataproperty of theScatterHistogramChartobject stores theyvaluesdata.

Example:[0.5 4.3 2.4 5.6 3.4]

Example:categorical({'small','medium','small','large','medium','small'})

Group values for the scatter plot and the corresponding marginal histograms, specified as a numeric vector, logical vector, categorical array, string array, or cell array of character vectors.

grpvaluessplits the data inxvaluesandyvaluesinto unique groups. Each group has a default color and an independent histogram in each axis. In the legend,scatterhistogramdisplays the group names in order of their first appearance inGroupData.

Example:[1 2 1 3 2 1 3]

Example:categorical({'blue','green','green','blue','green'})

Parent container, specified as aFigure,Panel,Tab,TiledChartLayout, orGridLayoutobject.

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:scatterhistogram(tbl,xvar,yvar,'GroupVariable',grpvar,'HistogramDisplayStyle','stairs')specifiesgrpvaras the grouping variable and displays stairstep plots next to the scatter plot.

Note

The properties listed here are only a subset. For a complete list, seeScatterHistogramChart Properties.

Chart title, specified as a character vector, string array, cell array of character vectors, or categorical array. The default chart has no title.

To create a multiline title, specify a string array or cell array of character vectors. Each element in the array corresponds to a line of text.

If you specify the title as a categorical array, MATLAB®uses the values in the array, not the categories.

Example:s = scatterhistogram(__,'Title','My Title Text')

Example:s.Title = 'My Title Text'

Example:s.Title = {'My','Title'}

Number of histogram bins, specified as a positive integer scalar, 2-by-1 positive integer vector, or 2-by-npositive integer matrix, wherenis the number of groups inGroupData.

Specified Value Description
scalar The value is the number of bins for thexandyhistograms.
2-by-1 vector The first value is the number of bins for thexdata, and the second value is the number of bins for theydata.
2-by-nmatrix The(1,j)value is the number of bins for the histogram of thexdata that is in thejth group. Similarly, the(2,j)value is the number of bins for the histogram of theydata that is in thejth group.

scatterhistogramuses the'BinMethod','auto'name-value pair argument ofhistogramto determine the defaultNumBinsandBinWidthsvalues.

You cannot changeNumBinsfor categorical data.

Example:s = scatterhistogram(__,'NumBins',20)

Example:s.NumBins = [10; 15]

Histogram display style, specified as one of these options.

Display Style Description
'stairs' Display a stairstep plot that shows the outline of the histogram without filling the bars.
'bar' Display a histogram bar plot.
'smooth' Display a smooth plot generated through kernel density estimates. This option requires a Statistics and Machine Learning Toolbox license.

scatterhistogramuses the'pdf'type of normalization to generate the histograms. For more information, see the'Normalization'name-value pair argument ofhistogram.

Example:s = scatterhistogram(__,'HistogramDisplayStyle','smooth')

Example:s.HistogramDisplayStyle = 'bar'

Histogram line width, specified as a positive scalar or positive vector in points. By default,scatterhistogramassigns a line width of0.5每个histogram plot line.

When the total number of groups exceeds the number of specified line widths,scatterhistogramcycles through the specified line widths.

Example:s = scatterhistogram(__,'LineWidth',0.75)

Example:s.LineWidth = [0.5 0.75 0.5]

Marker symbol for each scatter plot group, specified in one of these forms:

  • Character vector designating a marker style

  • String array or cell array of character vectors designating one or more marker styles

Choose among these marker options.

Marker Description Resulting Marker
'o' Circle

Sample of circle marker

'+' Plus sign

Sample of plus sign marker

'*' Asterisk

Sample of asterisk marker

'.' Point

Sample of point marker

'x' Cross

Sample of cross marker

'_' Horizontal line

Sample of horizontal line marker

'|' Vertical line

Sample of vertical line marker

's' Square

Sample of square marker

'd' Diamond

Sample of diamond line marker

'^' Upward-pointing triangle

Sample of upward-pointing triangle marker

'v' Downward-pointing triangle

Sample of downward-pointing triangle marker

'>' Right-pointing triangle

Sample of right-pointing triangle marker

'<' Left-pointing triangle

Sample of left-pointing triangle marker

'p' Pentagram

Sample of pentagram marker

'h' Hexagram

Sample of hexagram marker

'none' No markers Not applicable

By default,scatterhistogramassigns the marker symbol'o'to each group in the scatter plot. When the total number of groups exceeds the number of specified symbols,scatterhistogramcycles through the specified symbols.

Example:s = scatterhistogram(__,'MarkerStyle','x')

Example:s.MarkerStyle = {'x','o'}

Location of the scatter plot, specified as one of these options.

Location Description
'SouthWest' Plot the histograms above and to the right of the scatter plot.
'SouthEast' Plot the histograms above and to the left of the scatter plot.
'NorthEast' Plot the histograms below and to the left of the scatter plot.
'NorthWest' Plot the histograms below and to the right of the scatter plot.

Example:s = scatterhistogram(__,'ScatterPlotLocation','NorthEast')

Example:s.ScatterPlotLocation = 'SouthEast'

State of legend visibility, specified as'on'or'off'. SetLegendVisibleto'on'to display the legend or'off'to hide the legend.

IfGroupDatais empty ([]) or contains a single group, thenscatterhistogramdoes not display a legend. Otherwise,scatterhistogram显示一个传奇在默认情况下,除非ov传奇erlaps the scatter plot or marginal histograms.

In the legend,scatterhistogramdisplays the group names in order of their first appearance inGroupData.

Example:s = scatterhistogram(__,'LegendVisible','on')

Example:s.LegendVisible = 'off'

Output Arguments

collapse all

ScatterHistogramChartobject, which is astandalone visualization. Usesto modify the object after you create it. For a list of properties, seeScatterHistogramChart Properties.

More About

collapse all

Standalone Visualization

A standalone visualization is a chart designed for a special purpose that works independently from other charts. Unlike other charts such asplotandsurf, a standalone visualization has a preconfigured axes object built into it, and some customizations are not available. A standalone visualization also has these characteristics:

  • It cannot be combined with other graphics elements, such as lines, patches, or surfaces. Thus, theholdcommand is not supported.

  • Thegcafunction can return the chart object as the current axes.

  • You can pass the chart object to many MATLAB functions that accept an axes object as an input argument. For example, you can pass the chart object to thetitlefunction.

Tips

  • 交互式地探索中的数据哟urScatterHistogramChartobject, use these options. Some of these options are not available in the Live Editor.

    • Zoom/pan — Use the scroll wheel or the+and-buttons to zoom. Click and drag the scatter plot to pan.scatterhistogramupdates the marginal histograms based on the data within the current scatter plot limits.

    • Data tips — Hover over the scatter plot or marginal histograms to display a data tip.

  • If you create a scatter plot with marginal histograms from a table, then you can customize data tips for the scatter plot.

    • To add or remove a row from the data tip, right-click anywhere on the scatter plot and point toModify Data Tips. Then, select or deselect a variable.

    • To add or remove multiple rows, right-click on the plot, point toModify Data Tips, and selectMore. Then, add variables by clicking>>or remove them by clicking<<.

Version History

Introduced in R2018b