我有一个使用plotly 构建堆积条形图的代码示例:
import plotly.graph_objects as go
x = ['2018-01', '2018-02', '2018-03']
fig = go.Figure(go.Bar(x=x, y=[10, 15, 3], name='Client 1'))
fig.add_trace(go.Bar(x=x, y=[12, 7, 14], name='Client 2'))
fig.update_layout(
barmode='stack',
yaxis={'title': 'amount'},
xaxis={
'type': 'category',
'title': 'month',
},
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
输出以下图:
有没有办法调整绘图布局以按值对每个条形的 Y 轴进行排序?
例如,在第二条 (2018-02) 中,客户端 1 的 Y 值较高,蓝色条应位于红色条的顶部。
我尝试了DCC Loading component,还尝试了CSS当组件处于加载状态时禁用屏幕上默认的“正在加载..”文本的方法。它根本不起作用。请建议我一种将默认加载消息更改为CSSin加载程序的方法Plotly's Dash。
这是dashapp.py将作为登录页面加载的文件:
from dash import Dash
import dash_bootstrap_components as dbc
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
from config import appserver
import time
external_stylesheets = [dbc.themes.YETI,'./frontend/static/stylesheet.css']
dashapp = Dash(__name__, server = appserver,external_stylesheets=external_stylesheets,\
url_base_pathname='/application/', title='Home Page', assets_url_path='assets')
dashapp.css.config.serve_locally = True
dashapp.layout = html.Div([
html.H1('Hi Welcome to Dash-Flask integration app!'),
], id="child-process")
if __name__=='__main__':
dashapp.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
样式CSS表位于目录: 中./frontend/static/。
我使用 …
我正在使用绘图go.Indicator来显示数据集的某些值。这是我的代码:
import dash_core_components as dcc
import plotly.graph_objects as go
value = dff.shape[0]
fig = go.Figure()
fig.add_trace(go.Indicator(
mode="number",
value=value,
domain={'row': 0, 'column': 0},
title='Total number of incidences'
)
fig.update_layout(
paper_bgcolor ='lightgray',
grid={
'rows': 1,
'columns': 1,
'pattern': 'independent'
}
)
dcc.Graph(
id='indicator-incidences',
figure=fig
)
Run Code Online (Sandbox Code Playgroud)
和这里
就是图中所表示的。正如您所看到的,它扩展到页面的总宽度,并且高度大于必要的高度。
如何实现图形根据其包含的指示器调整大小?
有没有办法控制水平线和垂直线的起点和终点plotly?
import plotly.graph_objects as go
fig = go.Figure(data=go.Scatter())
fig.add_vline(x=1, line_width=2, line_dash="dash", line_color="green")
fig.add_hline(y=2, line_width=2, line_dash="dash", line_color="red")
fig.show()
Run Code Online (Sandbox Code Playgroud)
上面的代码将绘制线条,但在整个屏幕上
我想做类似的事情:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize = (10,7))
ax.hlines(y=2, xmin='July', xmax='Aug', linewidth=2, color='red', linestyles = 'dotted')
ax.axvline(x = 1,color = 'green', linestyle = 'dotted', linewidth = 2)
Run Code Online (Sandbox Code Playgroud) 我想使用 Plotly express 绘制一些坐标,因为它允许我采用更具交互性的方法,但我找不到以单行中使用 matplotlib.pyplot 进行管理的方式来控制轴中的比例的方法
plt.axis("scaled")
Run Code Online (Sandbox Code Playgroud)
您能分享一些建议吗?谢谢。
这是使用 Plotly Express 的代码:
fig = px.scatter(coordinates_utm, x='EASTING', y='NORTHING', title=name,
hover_name=coordinates_utm.index,
hover_data={'NORTHING':':.6f','EASTING': ':.6f'})
fig.add_trace(px.scatter(coordinates_utm_lineal, x='x', y='ylineal',color_discrete_sequence=['red']).data[0])
Run Code Online (Sandbox Code Playgroud)
这是使用 plt 的代码:
fig.show()
plt.figure()
plt.scatter(coordinates_utm_lineal.x,coordinates_utm_lineal.ylineal,s=2)
plt.scatter(coordinates_utm.EASTING,coordinates_utm.NORTHING, s=2)
plt.axis("scaled")
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想传递一个变量,在本例中precision用于定义plotly中的浮点hovertemplate= "%{y:.2f}。
有办法做到这一点吗?下面是一个工作示例代码
import pandas as pd
import plotly.express as px
import plotly.io as pio
pio.renderers.default = "notebook_connected"
df = pd.DataFrame(dict(a=[1,2,3,4,5], b=[0.1,0.22,0.333, 0.4444, 0.55555]))
precision = 2
fig = px.line(df, x="a", y="b")
#
fig.update_traces(mode="lines", hovertemplate= "%{y:.3f}", hoverinfo="x + y")
# would like to use a variable to define floating point precision
# Something like: hovertemplate= "%{y:.precisionf}"
fig.update_layout(
template="plotly_white",
title='Sample Plot',
xaxis_range= [0, 6],
xaxis=dict(
tickmode="linear",
dtick=1,
mirror=True,
ticks="outside",
showline=True,
linewidth=1,
linecolor="#A6C4EF",
),
yaxis=dict(
tickmode="linear",
tick0=5,
dtick=0.1, …Run Code Online (Sandbox Code Playgroud) 我最近读到关于能够使用 Flask 和 JS<script>标签从 Python 绘制 Plotly 图形,并希望使用 React 和 Flask 作为 API 而不是普通的 JS 来复制它。获取数据很好,但尝试从打包成 JSON 的 Python Plotly 中绘制数据 -> React 上的 Plotly 永远不会工作 - 它只会返回空白的白色显示。
以下是 Flask 端 API 的代码(我只是使用此示例/plot1中的函数来测试它;JSON 返回正常):
from flask import Flask
import pandas as pd
import json
import plotly
import plotly.express as px
app = Flask(__name__)
@app.route('/chart1')
def chart1():
df = pd.DataFrame({
"Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
"Amount": [4, 1, 2, 2, 4, 5],
"City": ["SF", …Run Code Online (Sandbox Code Playgroud) 我有一个有 4 列的 pandas 数据框,类似于这样的东西-
a = [19.1, 18.4, 19.2, 18.2, 17.4]
b = [62.28, 57.07, 55.61,54.09,54.6]
c = [18.68,17.79,17.03,18.62,18.62]
d = [73.03,71.63,70.22,71.77,71.77]
Run Code Online (Sandbox Code Playgroud)
我正在使用 Plotly Express 绘制折线图以可视化每一列。我想单独为 a 和 c 列绘制虚线(虚线),为 b 和 d 列绘制常规线。如何使用 Plotly Express 为 a 列和 c 列创建虚线?
我想更改plotly(_express)情节中的方面标签。这是情节:
import plotly.express as px
tips = px.data.tips()
fig = px.scatter(tips, x="total_bill", y="tip", color="smoker", facet_col="sex")
fig.show()
Run Code Online (Sandbox Code Playgroud)
我想要的是sex=从标签中删除。
我需要用换行符在 plotly 上创建一个图。最好顶部的文本大于第二行,但不是必需的。
fig.update_layout(
title=go.layout.Title(
text=title,
xref="paper",
x=0.5,
),
Run Code Online (Sandbox Code Playgroud)
对于我尝试过的标题
title = "Hello \n World"
title = "Hello" + "\n" + "World"
title = "$Hello \\ World$"
title = "$Hello \newline World$"
Run Code Online (Sandbox Code Playgroud)
所有运行都没有错误,但换行符被忽略。
我不确定如何实现这一点。感谢您的帮助。
有一个简单的 Flask 应用程序,它将统计表从数据库写入页面。如何在此页面上绘制plotly.express图表?我想要集成到烧瓶应用程序中的图表代码:(取自https://plotly.com/python/time-series/)
# Using plotly.express
import plotly.express as px
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/...')
fig = px.line(df, x='Date', y='AAPL.High')
fig.show()
Run Code Online (Sandbox Code Playgroud) 希望有人有建议!当我不指定 X 和 Y 位置时,桑基图在形状方面看起来不错,但在垂直排序方面则不然:元素的垂直/Y 顺序不是我想要的(对于每个 X 位置,垂直顺序都不同) ):
当我设置 pad=100 时,对于每个足够奇怪的 X 位置,Y 顺序都是正确的。但是当 pad=1 时,我尝试显式设置 X 和 Y 位置,但绘图在形状方面看起来很奇怪。不知道为什么。有任何想法吗 ?请参阅下面的示例代码:
fig = go.Figure(go.Sankey(
arrangement = "snap",
node = {
"label": ["0br","0cl","0go","0gr","0hy","1br","1cl","1go","1gr","1hy","2br","2cl","2go","2gr","2hy","3br","3cl","3go","3gr","3hy","4br","4cl","4go","4gr","4hy","5br","5cl","5go","5gr","5hy","6br","6cl","6go","6gr","6hy"],
"x": [0, 0, 0, 0, 0, 0.16, 0.16, 0.16, 0.16, 0.16, 0.33, 0.33, 0.33, 0.33, 0.33, 0.5, 0.5, 0.5, 0.5, 0.5, 0.66, 0.66, 0.66, 0.66, 0.66, 0.84, 0.84, 0.84, 0.84, 0.84, 1, 1, 1, 1, 1],
"y": [0, 0.25, 0.5, 0.75, 1.0,0, 0.25, 0.5, 0.75, 1.0,0, 0.25, …Run Code Online (Sandbox Code Playgroud) plotly-python ×12
plotly ×7
python ×6
plotly-dash ×3
flask ×2
matplotlib ×2
plotly.js ×1
reactjs ×1
web ×1