I am trying to plot an interactive violin plot using plotly in python, but it does not work with negative values.
If you run this code, the output (out.html) does not show anything. If you remove all the "-" characters (or even just a couple of them), the violin plot will appear in the output showing the positive values.
import plotly
import numpy as np
outputFile = 'out.html'
data = [-2.728,-2.974,-1.824,-1.885,-2.646,-2.982,-2.538,-3.166,-2.585,-3.131,\
-2.949,-2.943,-2.485,-2.176,-2.240,-2.918,-2.342,-2.934,-1.506,-2.387,-2.899,\
-1.669,-2.840,-1.719,-2.388,-3.255,-2.785,-2.147,-1.800,-2.125,-3.082,-1.594,\
-2.368,-2.870,-4.473,-1.939,-2.819,-3.970,-2.635,-2.803,-2.362,-1.808,-1.562,\
-2.026,-2.682,-2.316,-3.689,-2.073,-2.534,-3.369,-2.398,-1.876,-2.264,-1.823,\
-2.905,-3.032,-2.139,-2.205,-2.468,-3.291,-2.259,-2.599,-1.368,-2.758,-1.734,\
-2.127,-3.392,-2.505,-2.828,-2.354,-3.611,-2.173,-1.964,-2.573,-2.872,-1.920,\
-1.587,-2.963,-3.073,-2.280,-3.292,-2.434,-1.905,-2.417,-3.977,-2.612,-2.770,\
-2.868,-2.318,-2.320,-2.327,-2.595,-1.942,-2.385,-2.203,-2.314,-2.403,-1.781,\
-2.570,-2.677,-2.692,-2.313,-2.859,-2.576,-2.827,-2.250,-1.668,-2.821,-2.291,\
-2.100,-3.346,-1.820,-1.533,-1.992,-1.835,-3.755,-2.940,-3.012,-2.608,-3.479,\
-2.557,-1.579,-1.587,-1.572,-1.844,-2.146,-3.172,-1.940,-1.633,-2.241,-2.029,\
-2.305,-2.689,-2.136,-2.181,-3.437,-2.520,-2.150,-1.709,-1.760,-2.447,-2.333,\
-2.496,-2.654,-3.280,-2.868,-1.831,-2.179,-1.931,-2.362,-2.306,-1.972,-2.471,\
-2.307,-2.362,-3.411,-2.375,-3.119,-1.818,-1.898,-2.099,-2.227,-1.969,-2.096]
dataD = np.array(data)
name = 'NAME'
colorbar_title = ''
final_data=[]
conf = {
"type": 'violin',
"x": name,
"y": dataD,
"legendgroup": name,
"scalegroup": name,
"name": name,
"side": 'negative',
"box": {
"visible" : True
},
"points": 'all',
"pointpos": 0,
"jitter": 0,
"scalemode": 'count',
"meanline": {
"visible": True
},
"line": {
"color": '#7cc2b6'
},
"marker": {
"size" : 1,
"line": {
"width": 0.5,
"color": '#7cc2b6'
}
},
"span": [
0
],
"showlegend": False
}
final_data.append(conf)
randomC = {
"type": 'violin',
"x": name,
"y": dataD,
"legendgroup": name,
"scalegroup": name,
"name": name,
"side": 'positive',
"box": {
"visible": True
},
"points": 'all',
"pointpos": 0,
"jitter": 0,
"scalemode": 'count',
"meanline": {
"visible": True
},
"line": {
"color": '#ada9c9'
},
"marker": {
"size" : 1,
"line": {
"width": 0.5,
"color": '#ada9c9'
}
},
"span": [
0
],
"showlegend": False
}
final_data.append(randomC)
fig = {
"data": final_data,
"layout" : {
"title": "Change title",
"yaxis": {
"rangemode": "normal",
"autorange": True
},
"violingap": 0,
"violingroupgap": 0,
"violinmode": "overlay"
}
}
plotly.offline.plot(fig, filename=outputFile, validate = False)
No error messages. I expected an out.html showing a violin plot with the negative values.