Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5afa3c9

Browse files
committed
Merge master and revert 1.9.13 changes
2 parents 0f3a048 + fbf3b74 commit 5afa3c9

File tree

4 files changed

+158
-35
lines changed

4 files changed

+158
-35
lines changed

plotly/graph_reference/default-schema.json

Lines changed: 132 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,8 @@
712712
"mollweide",
713713
"hammer",
714714
"transverse mercator",
715-
"albers usa"
715+
"albers usa",
716+
"winkel tripel"
716717
]
717718
}
718719
},
@@ -838,6 +839,114 @@
838839
false
839840
]
840841
},
842+
"images": {
843+
"items": {
844+
"image": {
845+
"layer": {
846+
"description": "Specifies whether images are drawn below or above traces. When `xref` and `yref` are both set to `paper`, image is drawn below the entire plot area.",
847+
"dflt": "above",
848+
"role": "info",
849+
"valType": "enumerated",
850+
"values": [
851+
"below",
852+
"above"
853+
]
854+
},
855+
"opacity": {
856+
"description": "Sets the opacity of the image.",
857+
"dflt": 1,
858+
"max": 1,
859+
"min": 0,
860+
"role": "info",
861+
"valType": "number"
862+
},
863+
"role": "object",
864+
"sizex": {
865+
"description": "Sets the image container size horizontally. The image will be sized based on the `position` value. When `xref` is set to `paper`, units are sized relative to the plot width.",
866+
"dflt": 0,
867+
"role": "info",
868+
"valType": "number"
869+
},
870+
"sizey": {
871+
"description": "Sets the image container size vertically. The image will be sized based on the `position` value. When `yref` is set to `paper`, units are sized relative to the plot height.",
872+
"dflt": 0,
873+
"role": "info",
874+
"valType": "number"
875+
},
876+
"sizing": {
877+
"description": "Specifies which dimension of the image to constrain.",
878+
"dflt": "contain",
879+
"role": "info",
880+
"valType": "enumerated",
881+
"values": [
882+
"fill",
883+
"contain",
884+
"stretch"
885+
]
886+
},
887+
"source": {
888+
"description": "Specifies the URL of the image to be used. The URL must be accessible from the domain where the plot code is run, and can be either relative or absolute.",
889+
"role": "info",
890+
"valType": "string"
891+
},
892+
"x": {
893+
"description": "Sets the image's x position. When `xref` is set to `paper`, units are sized relative to the plot height. See `xref` for more info",
894+
"dflt": 0,
895+
"role": "info",
896+
"valType": "number"
897+
},
898+
"xanchor": {
899+
"description": "Sets the anchor for the x position",
900+
"dflt": "left",
901+
"role": "info",
902+
"valType": "enumerated",
903+
"values": [
904+
"left",
905+
"center",
906+
"right"
907+
]
908+
},
909+
"xref": {
910+
"description": "Sets the images's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to an x data coordinate If set to *paper*, the `x` position refers to the distance from the left of plot in normalized coordinates where *0* (*1*) corresponds to the left (right).",
911+
"dflt": "paper",
912+
"role": "info",
913+
"valType": "enumerated",
914+
"values": [
915+
"paper",
916+
"/^x([2-9]|[1-9][0-9]+)?$/"
917+
]
918+
},
919+
"y": {
920+
"description": "Sets the image's y position. When `yref` is set to `paper`, units are sized relative to the plot height. See `yref` for more info",
921+
"dflt": 0,
922+
"role": "info",
923+
"valType": "number"
924+
},
925+
"yanchor": {
926+
"description": "Sets the anchor for the y position.",
927+
"dflt": "top",
928+
"role": "info",
929+
"valType": "enumerated",
930+
"values": [
931+
"top",
932+
"middle",
933+
"bottom"
934+
]
935+
},
936+
"yref": {
937+
"description": "Sets the images's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y data coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plot in normalized coordinates where *0* (*1*) corresponds to the bottom (top).",
938+
"dflt": "paper",
939+
"role": "info",
940+
"valType": "enumerated",
941+
"values": [
942+
"paper",
943+
"/^y([2-9]|[1-9][0-9]+)?$/"
944+
]
945+
}
946+
}
947+
},
948+
"role": "object"
949+
},
841950
"legend": {
842951
"bgcolor": {
843952
"description": "Sets the legend background color.",
@@ -877,6 +986,16 @@
877986
"valType": "number"
878987
}
879988
},
989+
"orientation": {
990+
"description": "Sets the orientation of the legend.",
991+
"dflt": "v",
992+
"role": "info",
993+
"valType": "enumerated",
994+
"values": [
995+
"v",
996+
"h"
997+
]
998+
},
880999
"role": "object",
8811000
"tracegroupgap": {
8821001
"description": "Sets the amount of vertical space (in px) between legend groups.",
@@ -6018,14 +6137,15 @@
60186137
"valType": "number"
60196138
},
60206139
"barmode": {
6021-
"description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars.",
6140+
"description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars.",
60226141
"dflt": "group",
60236142
"role": "info",
60246143
"valType": "enumerated",
60256144
"values": [
60266145
"stack",
60276146
"group",
6028-
"overlay"
6147+
"overlay",
6148+
"relative"
60296149
]
60306150
},
60316151
"barnorm": {
@@ -9298,14 +9418,15 @@
92989418
"valType": "number"
92999419
},
93009420
"barmode": {
9301-
"description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars.",
9421+
"description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars.",
93029422
"dflt": "group",
93039423
"role": "info",
93049424
"valType": "enumerated",
93059425
"values": [
93069426
"stack",
93079427
"group",
9308-
"overlay"
9428+
"overlay",
9429+
"relative"
93099430
]
93109431
},
93119432
"barnorm": {
@@ -15156,6 +15277,12 @@
1515615277
},
1515715278
"scattergl": {
1515815279
"attributes": {
15280+
"connectgaps": {
15281+
"description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.",
15282+
"dflt": false,
15283+
"role": "info",
15284+
"valType": "boolean"
15285+
},
1515915286
"dx": {
1516015287
"description": "Sets the x coordinate step. See `x0` for more info.",
1516115288
"dflt": 1,

plotly/offline/offline.py

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
from plotly import tools, utils
1717
from plotly.exceptions import PlotlyError
1818

19-
2019
try:
2120
import IPython
21+
from IPython.display import HTML, display
2222
_ipython_imported = True
2323
except ImportError:
2424
_ipython_imported = False
@@ -29,10 +29,8 @@
2929
except ImportError:
3030
_matplotlib_imported = False
3131

32-
3332
__PLOTLY_OFFLINE_INITIALIZED = False
3433

35-
3634
def download_plotlyjs(download_url):
3735
warnings.warn('''
3836
`download_plotlyjs` is deprecated and will be removed in the
@@ -50,25 +48,30 @@ def get_plotlyjs():
5048

5149
def init_notebook_mode():
5250
"""
53-
Initialize Plotly Offline mode in an IPython Notebook.
54-
Run this function at the start of an IPython notebook
55-
to load the necessary javascript files for creating
56-
Plotly graphs with plotly.offline.iplot.
51+
Initialize plotly.js in the browser if it hasn't been loaded into the DOM
52+
yet. This is an idempotent method and can and should be called from any
53+
offline methods that require plotly.js to be loaded into the notebook dom.
5754
"""
58-
if not tools._ipython_imported:
55+
if not _ipython_imported:
5956
raise ImportError('`iplot` can only run inside an IPython Notebook.')
60-
from IPython.display import HTML, display
6157

6258
global __PLOTLY_OFFLINE_INITIALIZED
6359
# Inject plotly.js into the output cell
64-
display(HTML("<script type='text/javascript'>" +
65-
"define('plotly', function(require, exports, module) {" +
66-
get_plotlyjs() +
67-
"});" +
68-
"require(['plotly'], function(Plotly) {" +
69-
"window.Plotly = Plotly;" +
70-
"});" +
71-
"</script>"))
60+
script_inject = (
61+
''
62+
'<script type=\'text/javascript\'>'
63+
'if(!window.Plotly){{'
64+
'define(\'plotly\', function(require, exports, module) {{'
65+
'{script}'
66+
'}});'
67+
'require([\'plotly\'], function(Plotly) {{'
68+
'window.Plotly = Plotly;'
69+
'}});'
70+
'}}'
71+
'</script>'
72+
'').format(script=get_plotlyjs())
73+
74+
display(HTML(script_inject))
7275
__PLOTLY_OFFLINE_INITIALIZED = True
7376

7477

@@ -173,7 +176,6 @@ def iplot(figure_or_data, show_link=True, link_text='Export to plot.ly',
173176
```
174177
from plotly.offline import init_notebook_mode, iplot
175178
init_notebook_mode()
176-
177179
iplot([{'x': [1, 2, 3], 'y': [5, 2, 7]}])
178180
```
179181
"""
@@ -189,8 +191,6 @@ def iplot(figure_or_data, show_link=True, link_text='Export to plot.ly',
189191
if not tools._ipython_imported:
190192
raise ImportError('`iplot` can only run inside an IPython Notebook.')
191193

192-
from IPython.display import HTML, display
193-
194194
plot_html, plotdivid, width, height = _plot_html(
195195
figure_or_data, show_link, link_text, validate,
196196
'100%', 525, global_requirejs=True)
@@ -424,13 +424,12 @@ def iplot_mpl(mpl_fig, resize=False, strip_style=False,
424424
from plotly.offline import init_notebook_mode, iplot_mpl
425425
import matplotlib.pyplot as plt
426426
427-
init_notebook_mode()
428-
429427
fig = plt.figure()
430428
x = [10, 15, 20, 25, 30]
431429
y = [100, 250, 200, 150, 300]
432430
plt.plot(x, y, "o")
433431
432+
init_notebook_mode()
434433
iplot_mpl(fig)
435434
```
436435
"""
@@ -454,10 +453,9 @@ def enable_mpl_offline(resize=False, strip_style=False,
454453
455454
Example:
456455
```
457-
from plotly.offline import init_notebook_mode, enable_mpl_offline
456+
from plotly.offline import enable_mpl_offline
458457
import matplotlib.pyplot as plt
459458
460-
init_notebook_mode()
461459
enable_mpl_offline()
462460
463461
fig = plt.figure()
@@ -467,8 +465,8 @@ def enable_mpl_offline(resize=False, strip_style=False,
467465
fig
468466
```
469467
"""
470-
if not __PLOTLY_OFFLINE_INITIALIZED:
471-
init_notebook_mode()
468+
init_notebook_mode()
469+
472470
ip = IPython.core.getipython.get_ipython()
473471
formatter = ip.display_formatter.formatters['text/html']
474472
formatter.for_type(matplotlib.figure.Figure,

plotly/tests/test_optional/test_offline/test_offline.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
class PlotlyOfflineTestCase(TestCase):
2929
def setUp(self):
30-
plotly.offline.offline.__PLOTLY_OFFLINE_INITIALIZED = False
30+
pass
3131

3232
@raises(plotly.exceptions.PlotlyError)
3333
def test_iplot_doesnt_work_before_you_call_init_notebook_mode(self):
@@ -87,4 +87,3 @@ def test_default_mpl_plot_generates_expected_html(self):
8787
self.assertTrue(PLOTLYJS in html) # and the source code
8888
# and it's an <html> doc
8989
self.assertTrue(html.startswith('<html>') and html.endswith('</html>'))
90-

plotly/version.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
__version__ = '1.9.12'
2-
1+
__version__ = '1.10.0'

0 commit comments

Comments
 (0)