* chore(learn): audit d3 projects * chore: audit data vis * chore: audit json apis * Update curriculum/challenges/english/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com> * fix: apply suggestions Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com> * fix: no colour backticks Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com> Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com> * Update curriculum/challenges/english/04-data-visualization/json-apis-and-ajax/get-geolocation-data-to-find-a-users-gps-coordinates.md Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com> Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com> Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
id: 587d7fac367417b2b2512bdc
 | 
						|
title: >-
 | 
						|
  Use the d3.max and d3.min Functions to Find Minimum and Maximum Values in a
 | 
						|
  Dataset
 | 
						|
challengeType: 6
 | 
						|
forumTopicId: 301496
 | 
						|
dashedName: >-
 | 
						|
  use-the-d3-max-and-d3-min-functions-to-find-minimum-and-maximum-values-in-a-dataset
 | 
						|
---
 | 
						|
 | 
						|
# --description--
 | 
						|
 | 
						|
The D3 methods `domain()` and `range()` set that information for your scale based on the data. There are a couple methods to make that easier.
 | 
						|
 | 
						|
Often when you set the domain, you'll want to use the minimum and maximum values within the data set. Trying to find these values manually, especially in a large data set, may cause errors.
 | 
						|
 | 
						|
D3 has two methods - `min()` and `max()` to return this information. Here's an example:
 | 
						|
 | 
						|
```js
 | 
						|
const exampleData = [34, 234, 73, 90, 6, 52];
 | 
						|
d3.min(exampleData)
 | 
						|
d3.max(exampleData)
 | 
						|
```
 | 
						|
 | 
						|
A dataset may have nested arrays, like the `[x, y]` coordinate pairs that were in the scatter plot example. In that case, you need to tell D3 how to calculate the maximum and minimum. Fortunately, both the `min()` and `max()` methods take a callback function. In this example, the callback function's argument `d` is for the current inner array. The callback needs to return the element from the inner array (the `x` or `y` value) over which you want to compute the maximum or minimum. Here's an example for how to find the min and max values with an array of arrays:
 | 
						|
 | 
						|
```js
 | 
						|
const locationData = [[1, 7],[6, 3],[8, 3]];
 | 
						|
const minX = d3.min(locationData, (d) => d[0]);
 | 
						|
```
 | 
						|
 | 
						|
`minX` would have the value `1`.
 | 
						|
 | 
						|
# --instructions--
 | 
						|
 | 
						|
The `positionData` array holds sub arrays of x, y, and z coordinates. Use a D3 method to find the maximum value of the z coordinate (the third value) from the arrays and save it in the `output` variable.
 | 
						|
 | 
						|
# --hints--
 | 
						|
 | 
						|
The text in the `h2` should be `8`.
 | 
						|
 | 
						|
```js
 | 
						|
assert(output == 8 && $('h2').text() == '8');
 | 
						|
```
 | 
						|
 | 
						|
Your code should use the `max()` method.
 | 
						|
 | 
						|
```js
 | 
						|
assert(
 | 
						|
  code.match(/\.max/g),
 | 
						|
  'Your code should use the <code>max()</code> method.'
 | 
						|
);
 | 
						|
```
 | 
						|
 | 
						|
# --seed--
 | 
						|
 | 
						|
## --seed-contents--
 | 
						|
 | 
						|
```html
 | 
						|
<body>
 | 
						|
  <script>
 | 
						|
    const positionData = [[1, 7, -4],[6, 3, 8],[2, 9, 3]]
 | 
						|
    // Add your code below this line
 | 
						|
 | 
						|
    const output = undefined; // Change this line
 | 
						|
 | 
						|
    // Add your code above this line
 | 
						|
 | 
						|
    d3.select("body")
 | 
						|
      .append("h2")
 | 
						|
      .text(output)
 | 
						|
  </script>
 | 
						|
</body>
 | 
						|
```
 | 
						|
 | 
						|
# --solutions--
 | 
						|
 | 
						|
```html
 | 
						|
<body>
 | 
						|
  <script>
 | 
						|
    const positionData = [[1, 7, -4],[6, 3, 8],[2, 9, 3]]
 | 
						|
 | 
						|
    const output = d3.max(positionData, (d) => d[2])
 | 
						|
 | 
						|
    d3.select("body")
 | 
						|
      .append("h2")
 | 
						|
      .text(output)
 | 
						|
  </script>
 | 
						|
</body>
 | 
						|
```
 |