ENH: add Bland-Altman plot
State: closed

I have written a small function to produce a Bland-Altman plot.

More info re: Bland-Altman plot.
https://en.wikipedia.org/wiki/Bland%E2%80%93Altman_plot

Labels:

Comments:
Hello @josesho! Thanks for submitting the PR.

 - In the file [`pandas/plotting/_misc.py`](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py), following are the PEP8 issues :

> [Line 574:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L574): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 575:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L575): [E302](https://duckduckgo.com/?q=pep8%20E302) expected 2 blank lines, found 1
> [Line 575:30](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L575): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 577:31](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L577): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 578:41](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L578): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 583:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L583): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 584:80](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L584): [E501](https://duckduckgo.com/?q=pep8%20E501) line too long (80 > 79 characters)
> [Line 585:80](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L585): [E501](https://duckduckgo.com/?q=pep8%20E501) line too long (81 > 79 characters)
> [Line 586:16](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L586): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 587:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L587): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 591:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L591): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 594:80](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L594): [E501](https://duckduckgo.com/?q=pep8%20E501) line too long (80 > 79 characters)
> [Line 595:78](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L595): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 600:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L600): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 603:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L603): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 605:75](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L605): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 607:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L607): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 609:75](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L609): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 611:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L611): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 613:75](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L613): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 615:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L615): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 620:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L620): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 624:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L624): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 628:80](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L628): [E501](https://duckduckgo.com/?q=pep8%20E501) line too long (81 > 79 characters)
> [Line 633:20](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L633): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 634:31](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L634): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 636:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L636): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 637:11](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L637): [E711](https://duckduckgo.com/?q=pep8%20E711) comparison to None should be 'if cond is None:'
> [Line 639:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L639): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 654:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L654): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 656:24](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L656): [E201](https://duckduckgo.com/?q=pep8%20E201) whitespace after '('
> [Line 656:55](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L656): [E202](https://duckduckgo.com/?q=pep8%20E202) whitespace before ')'
> [Line 657:16](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L657): [E211](https://duckduckgo.com/?q=pep8%20E211) whitespace before '('
> [Line 658:44](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L658): [E261](https://duckduckgo.com/?q=pep8%20E261) at least two spaces before inline comment
> [Line 659:21](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L659): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 663:33](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L663): [E201](https://duckduckgo.com/?q=pep8%20E201) whitespace after '('
> [Line 663:48](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L663): [E202](https://duckduckgo.com/?q=pep8%20E202) whitespace before ')'
> [Line 665:55](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L665): [E231](https://duckduckgo.com/?q=pep8%20E231) missing whitespace after ','
> [Line 666:22](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L666): [E127](https://duckduckgo.com/?q=pep8%20E127) continuation line over-indented for visual indent
> [Line 667:22](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L667): [E127](https://duckduckgo.com/?q=pep8%20E127) continuation line over-indented for visual indent
> [Line 668:22](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L668): [E127](https://duckduckgo.com/?q=pep8%20E127) continuation line over-indented for visual indent
> [Line 669:22](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L669): [E127](https://duckduckgo.com/?q=pep8%20E127) continuation line over-indented for visual indent
> [Line 669:30](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L669): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 669:32](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L669): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 670:22](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L670): [E127](https://duckduckgo.com/?q=pep8%20E127) continuation line over-indented for visual indent
> [Line 671:55](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L671): [E231](https://duckduckgo.com/?q=pep8%20E231) missing whitespace after ','
> [Line 671:70](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L671): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 672:38](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L672): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 674:29](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L674): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 674:31](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L674): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 676:24](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L676): [W291](https://duckduckgo.com/?q=pep8%20W291) trailing whitespace
> [Line 678:1](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L678): [W293](https://duckduckgo.com/?q=pep8%20W293) blank line contains whitespace
> [Line 679:41](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L679): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 679:43](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L679): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 680:36](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L680): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals
> [Line 680:38](https://github.com/pandas-dev/pandas/blob/0311404e118af67495fd50d0fb52132c11247731/pandas/plotting/_misc.py#L680): [E251](https://duckduckgo.com/?q=pep8%20E251) unexpected spaces around keyword / parameter equals