@@ -2658,67 +2658,84 @@ def test_pie_df_nan(self):
2658
2658
2659
2659
@pytest .mark .slow
2660
2660
def test_errorbar_plot (self ):
2661
- with warnings .catch_warnings ():
2662
- d = {"x" : np .arange (12 ), "y" : np .arange (12 , 0 , - 1 )}
2663
- df = DataFrame (d )
2664
- d_err = {"x" : np .ones (12 ) * 0.2 , "y" : np .ones (12 ) * 0.4 }
2665
- df_err = DataFrame (d_err )
2661
+ d = {"x" : np .arange (12 ), "y" : np .arange (12 , 0 , - 1 )}
2662
+ df = DataFrame (d )
2663
+ d_err = {"x" : np .ones (12 ) * 0.2 , "y" : np .ones (12 ) * 0.4 }
2664
+ df_err = DataFrame (d_err )
2666
2665
2667
- # check line plots
2668
- ax = _check_plot_works (df .plot , yerr = df_err , logy = True )
2669
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2670
- ax = _check_plot_works (df .plot , yerr = df_err , logx = True , logy = True )
2671
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2672
- ax = _check_plot_works (df .plot , yerr = df_err , loglog = True )
2673
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2666
+ # check line plots
2667
+ ax = _check_plot_works (df .plot , yerr = df_err , logy = True )
2668
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2674
2669
2675
- kinds = ["line" , "bar" , "barh" ]
2676
- for kind in kinds :
2677
- ax = _check_plot_works (df .plot , yerr = df_err ["x" ], kind = kind )
2678
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2679
- ax = _check_plot_works (df .plot , yerr = d_err , kind = kind )
2680
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2681
- ax = _check_plot_works (df .plot , yerr = df_err , xerr = df_err , kind = kind )
2682
- self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2683
- ax = _check_plot_works (
2684
- df .plot , yerr = df_err ["x" ], xerr = df_err ["x" ], kind = kind
2685
- )
2686
- self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2687
- ax = _check_plot_works (df .plot , xerr = 0.2 , yerr = 0.2 , kind = kind )
2688
- self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2689
-
2690
- # _check_plot_works adds an ax so catch warning. see GH #13188
2691
- axes = _check_plot_works (
2692
- df .plot , yerr = df_err , xerr = df_err , subplots = True , kind = kind
2693
- )
2694
- self ._check_has_errorbars (axes , xerr = 1 , yerr = 1 )
2695
-
2696
- ax = _check_plot_works (
2697
- (df + 1 ).plot , yerr = df_err , xerr = df_err , kind = "bar" , log = True
2698
- )
2699
- self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2670
+ ax = _check_plot_works (df .plot , yerr = df_err , logx = True , logy = True )
2671
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2700
2672
2701
- # yerr is raw error values
2702
- ax = _check_plot_works (df ["y" ].plot , yerr = np .ones (12 ) * 0.4 )
2703
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2704
- ax = _check_plot_works (df .plot , yerr = np .ones ((2 , 12 )) * 0.4 )
2673
+ ax = _check_plot_works (df .plot , yerr = df_err , loglog = True )
2674
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2675
+
2676
+ ax = _check_plot_works (
2677
+ (df + 1 ).plot , yerr = df_err , xerr = df_err , kind = "bar" , log = True
2678
+ )
2679
+ self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2680
+
2681
+ # yerr is raw error values
2682
+ ax = _check_plot_works (df ["y" ].plot , yerr = np .ones (12 ) * 0.4 )
2683
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2684
+
2685
+ ax = _check_plot_works (df .plot , yerr = np .ones ((2 , 12 )) * 0.4 )
2686
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2687
+
2688
+ # yerr is column name
2689
+ for yerr in ["yerr" , "誤差" ]:
2690
+ s_df = df .copy ()
2691
+ s_df [yerr ] = np .ones (12 ) * 0.2
2692
+
2693
+ ax = _check_plot_works (s_df .plot , yerr = yerr )
2705
2694
self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2706
2695
2707
- # yerr is column name
2708
- for yerr in ["yerr" , "誤差" ]:
2709
- s_df = df .copy ()
2710
- s_df [yerr ] = np .ones (12 ) * 0.2
2711
- ax = _check_plot_works (s_df .plot , yerr = yerr )
2712
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2713
- ax = _check_plot_works (s_df .plot , y = "y" , x = "x" , yerr = yerr )
2714
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2696
+ ax = _check_plot_works (s_df .plot , y = "y" , x = "x" , yerr = yerr )
2697
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2715
2698
2716
- with pytest .raises (ValueError ):
2717
- df .plot (yerr = np .random .randn (11 ))
2699
+ with pytest .raises (ValueError ):
2700
+ df .plot (yerr = np .random .randn (11 ))
2718
2701
2719
- df_err = DataFrame ({"x" : ["zzz" ] * 12 , "y" : ["zzz" ] * 12 })
2720
- with pytest .raises ((ValueError , TypeError )):
2721
- df .plot (yerr = df_err )
2702
+ df_err = DataFrame ({"x" : ["zzz" ] * 12 , "y" : ["zzz" ] * 12 })
2703
+ with pytest .raises ((ValueError , TypeError )):
2704
+ df .plot (yerr = df_err )
2705
+
2706
+ @pytest .mark .slow
2707
+ @pytest .mark .parametrize ("kind" , ["line" , "bar" , "barh" ])
2708
+ def test_errorbar_plot_different_kinds (self , kind ):
2709
+ d = {"x" : np .arange (12 ), "y" : np .arange (12 , 0 , - 1 )}
2710
+ df = DataFrame (d )
2711
+ d_err = {"x" : np .ones (12 ) * 0.2 , "y" : np .ones (12 ) * 0.4 }
2712
+ df_err = DataFrame (d_err )
2713
+
2714
+ ax = _check_plot_works (df .plot , yerr = df_err ["x" ], kind = kind )
2715
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2716
+
2717
+ ax = _check_plot_works (df .plot , yerr = d_err , kind = kind )
2718
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2719
+
2720
+ ax = _check_plot_works (df .plot , yerr = df_err , xerr = df_err , kind = kind )
2721
+ self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2722
+
2723
+ ax = _check_plot_works (df .plot , yerr = df_err ["x" ], xerr = df_err ["x" ], kind = kind )
2724
+ self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2725
+
2726
+ ax = _check_plot_works (df .plot , xerr = 0.2 , yerr = 0.2 , kind = kind )
2727
+ self ._check_has_errorbars (ax , xerr = 2 , yerr = 2 )
2728
+
2729
+ with tm .assert_produces_warning (UserWarning ):
2730
+ # _check_plot_works creates subplots inside,
2731
+ # which leads to warnings like this:
2732
+ # UserWarning: To output multiple subplots,
2733
+ # the figure containing the passed axes is being cleared
2734
+ # Similar warnings were observed in GH #13188
2735
+ axes = _check_plot_works (
2736
+ df .plot , yerr = df_err , xerr = df_err , subplots = True , kind = kind
2737
+ )
2738
+ self ._check_has_errorbars (axes , xerr = 1 , yerr = 1 )
2722
2739
2723
2740
@pytest .mark .xfail (reason = "Iterator is consumed" , raises = ValueError )
2724
2741
@pytest .mark .slow
@@ -2765,35 +2782,39 @@ def test_errorbar_with_partial_columns(self):
2765
2782
self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2766
2783
2767
2784
@pytest .mark .slow
2768
- def test_errorbar_timeseries (self ):
2785
+ @pytest .mark .parametrize ("kind" , ["line" , "bar" , "barh" ])
2786
+ def test_errorbar_timeseries (self , kind ):
2787
+ d = {"x" : np .arange (12 ), "y" : np .arange (12 , 0 , - 1 )}
2788
+ d_err = {"x" : np .ones (12 ) * 0.2 , "y" : np .ones (12 ) * 0.4 }
2769
2789
2770
- with warnings .catch_warnings ():
2771
- d = {"x" : np .arange (12 ), "y" : np .arange (12 , 0 , - 1 )}
2772
- d_err = {"x" : np .ones (12 ) * 0.2 , "y" : np .ones (12 ) * 0.4 }
2790
+ # check time-series plots
2791
+ ix = date_range ("1/1/2000" , "1/1/2001" , freq = "M" )
2792
+ tdf = DataFrame (d , index = ix )
2793
+ tdf_err = DataFrame (d_err , index = ix )
2773
2794
2774
- # check time-series plots
2775
- ix = date_range ("1/1/2000" , "1/1/2001" , freq = "M" )
2776
- tdf = DataFrame (d , index = ix )
2777
- tdf_err = DataFrame (d_err , index = ix )
2795
+ ax = _check_plot_works (tdf .plot , yerr = tdf_err , kind = kind )
2796
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2778
2797
2779
- kinds = ["line" , "bar" , "barh" ]
2780
- for kind in kinds :
2781
- ax = _check_plot_works (tdf .plot , yerr = tdf_err , kind = kind )
2782
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2783
- ax = _check_plot_works (tdf .plot , yerr = d_err , kind = kind )
2784
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2785
- ax = _check_plot_works (tdf .plot , y = "y" , yerr = tdf_err ["x" ], kind = kind )
2786
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2787
- ax = _check_plot_works (tdf .plot , y = "y" , yerr = "x" , kind = kind )
2788
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2789
- ax = _check_plot_works (tdf .plot , yerr = tdf_err , kind = kind )
2790
- self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2791
-
2792
- # _check_plot_works adds an ax so catch warning. see GH #13188
2793
- axes = _check_plot_works (
2794
- tdf .plot , kind = kind , yerr = tdf_err , subplots = True
2795
- )
2796
- self ._check_has_errorbars (axes , xerr = 0 , yerr = 1 )
2798
+ ax = _check_plot_works (tdf .plot , yerr = d_err , kind = kind )
2799
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2800
+
2801
+ ax = _check_plot_works (tdf .plot , y = "y" , yerr = tdf_err ["x" ], kind = kind )
2802
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2803
+
2804
+ ax = _check_plot_works (tdf .plot , y = "y" , yerr = "x" , kind = kind )
2805
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 1 )
2806
+
2807
+ ax = _check_plot_works (tdf .plot , yerr = tdf_err , kind = kind )
2808
+ self ._check_has_errorbars (ax , xerr = 0 , yerr = 2 )
2809
+
2810
+ with tm .assert_produces_warning (UserWarning ):
2811
+ # _check_plot_works creates subplots inside,
2812
+ # which leads to warnings like this:
2813
+ # UserWarning: To output multiple subplots,
2814
+ # the figure containing the passed axes is being cleared
2815
+ # Similar warnings were observed in GH #13188
2816
+ axes = _check_plot_works (tdf .plot , kind = kind , yerr = tdf_err , subplots = True )
2817
+ self ._check_has_errorbars (axes , xerr = 0 , yerr = 1 )
2797
2818
2798
2819
def test_errorbar_asymmetrical (self ):
2799
2820
0 commit comments