我试图用 plotly 绘制两个散点图,其中在两个子图中自动选择的颜色是相同的,但我找不到这样做的方法。
下面是一个代码片段:
import plotly as py
import plotly.tools as to
import numpy as np
import plotly.graph_objs as go
fig=to.make_subplots(rows=1,cols=2,subplot_titles=['Plot 1','Plot 2'])
X=[0,50,100,150,200,250,300,350,400,450,500]
Y=[1,2,3,4,5,6,7,8,9,10,11]
Z=Y.copy()
for i in np.arange(11):
if i==0:
Z[0]=Y[0]
else:
Z[i]=Y[i]+Z[i-1]
trace=go.Scatter(x=X,y=Y)
fig.append_trace(trace,1,1)
trace=go.Scatter(x=X,y=Z,showlegend=False)
fig.append_trace(trace,1,2);
py.offline.plot(fig)
Run Code Online (Sandbox Code Playgroud)
上面的代码绘制了两个子图,散点将具有不同的颜色。我希望它们具有相同的颜色。我知道我可以对两个散点上的颜色进行硬编码,但我需要从某些配色方案中自动选择颜色。
我怎样才能达到我所需要的?
是否可以plt.show()在 plotly 的 Dash 框架中显示一个简单的 matplotlib 图(通常由 生成的那种)?或者只是带有 plotly 的散点和数据轨迹的类似情节的图形?
具体来说,我想我需要一个与Graph(见下文)不同的组件以及一种在update_figure函数中返回简单图的方法。
例子:
import dash
import dash_core_components as dcc
import dash_html_components as html
import numpy as np
import matplotlib.pyplot as plt
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
dcc.Slider(
id='n_points',
min=10,
max=100,
step=1,
value=50,
),
dcc.Graph(id='example') # or something other than Graph?...
])
@app.callback(
dash.dependencies.Output('example', 'figure'),
[dash.dependencies.Input('n_points', 'value')]
)
def update_figure(n_points):
#create some matplotlib graph
x = np.random.rand(n_points)
y = np.random.rand(n_points)
plt.scatter(x, y)
# …Run Code Online (Sandbox Code Playgroud) 如何将“绘图带”或图表中的阴影区域添加到 plotly-js 图表中?看起来像这张图片的东西:
(来自不同的产品:Highcharts)
具体来说,我想为绘图图表的某些部分(其中多个)添加背景颜色,为 X 指定 [xFrom, xTo] 坐标,并使用任意颜色绘制整个 Y 范围。例如,突出显示某个范围内特别感兴趣的时间窗口(例如异常)。
我有一个时间序列数据如下:
Datum Menge
1/1/2018 0:00 19.5
1/1/2018 0:15 19.0
1/1/2018 0:30 19.5
1/1/2018 0:45 19.5
1/1/2018 1:00 21.0
1/1/2018 1:15 19.5
1/1/2018 1:30 20.0
1/1/2018 1:45 23.0
Run Code Online (Sandbox Code Playgroud)
并且数据框data的形状为 (14880, 2)。在该Menge列中,只有 11807 个可用值,其余为nan
我试图按如下方式绘制它:
data.plot()
plt.show()
Run Code Online (Sandbox Code Playgroud)
这给了我
但我想使用seaborn或绘制相同的图plotly
因为seaborn我试过:
x = data.Datum
y = data.Menge.values
sns.lineplot(x = x, y = y, data = data)
Run Code Online (Sandbox Code Playgroud)
它给了我输出:
Out[3]: <matplotlib.axes._subplots.AxesSubplot at 0x21286bb8668>
Run Code Online (Sandbox Code Playgroud)
并打开了一个新的图形窗口,但它说 Figure 1 (Not Responding)
所以,我有两个问题:
Datum那里的值。如何更改?plotly.express 非常方便地生成漂亮的交互式绘图。下面的代码生成一个按国家/地区着色的折线图。现在我需要的是在图中添加点。有谁知道如何向折线图添加点?
import plotly.express as px
gapminder = px.data.gapminder().query("continent=='Oceania'")
fig = px.line(gapminder, x="year", y="lifeExp", color='country')
fig.show()
Run Code Online (Sandbox Code Playgroud) 我想反转我使用 plotly.graph_objects 为所有过图获得的图形的 y 轴。我知道可以使用 plotly.express 完成轴的反转。但我想知道如何使用plotly.graph_objects以下方法反转轴:

Dash 中 (空格)的 HTML 等价物是什么?
html.Div(
[
dcc.Input(),
<add horizontal space here>
dcc.Input()
]
)
Run Code Online (Sandbox Code Playgroud) 我试图在 plotly 的同一个图中绘制条形图和散点图,但它只显示散点图。
如何显示两个图?
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter
import plotly
import plotly.offline as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
import plotly.tools as tls
from plotly.subplots import make_subplots
from plotly.offline import plot, iplot, init_notebook_mode
init_notebook_mode(connected=False)
df = pd.DataFrame({
'price': [ 4.0, 17.0, 7.0, 7.0, 2.0, 1.0, 1.0],
'item': ['apple', 'banana', 'carrot', 'plum',
'orange', 'date', 'cherry']})
df = df.sort_values(num,ascending=False)
df['cumulative_sum'] = df[num].cumsum() …Run Code Online (Sandbox Code Playgroud) 我使用了一个 plotly.js parcats 图表来制作一个连续的 sankey (例如https://github.com/EE2dev/sequence-explorer)。以下是显示测验之间成绩变化的示例 parcats:
var trace1 = {
type: 'parcats',
hoveron: 'color',
dimensions: [
{
label: 'Quiz 1',
values: ['Black', 'Black', 'Black', 'Brown', 'Brown', 'Brown', 'Red', 'Brown'],
},
{
label: 'Quiz 2',
values: ['Brown', 'Brown', 'Brown', 'Brown', 'Brown', 'Blue', 'Blue', 'Blue'],
},
{
label: 'Quiz 3',
values: ['Female', 'Female', 'Female', 'Male', 'Female', 'Male', 'Male', 'Male'],
},
],
};
var data = [ trace1 ];
var layout = {width: 600};
Plotly.newPlot('myDiv', data, layout);
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停在一条路径上时,从“测验 1”到“测验 3”的完整路径会突出显示,但我希望仅突出显示“测验 …
plotly ×10
python ×8
matplotlib ×2
plotly-dash ×2
plotly.js ×2
hover ×1
javascript ×1
python-3.x ×1
seaborn ×1