我的 Shiny 应用程序中有一个plotly条形图,我想在生成的条形图中为每列设置特定的颜色。
#Here's some reproducible data
df=data.frame(Month=c("Jan","Feb","Mar","Apr","May","Jun"),Criteria1=c(10,15,20,15,7,6),Criteria2=c(3,8,5,7,9,10),Criteria3=c(11,18,14,9,3,1))
#Plot
colNames <- names(df)[-1] #Month is the first column
# Here is where I set the colors for each `Criteria`, assuming that the order of colors follows the same order as the factor levels of the `Criteria`.
p <- plotly::plot_ly(marker=list(colors=c('#CC1480', '#FF9673', '#E1C8B4')))
for(trace in colNames){
p <- p %>% plotly::add_trace(data = df, x = ~Month, y = as.formula(paste0("~`", trace, "`")), name = trace, type = "bar")
}
p %>%
layout(title …Run Code Online (Sandbox Code Playgroud) 我最近开始使用 Redis 和 RQ 来运行后台进程。我构建了一个 Dash 应用程序,它在 Heroku 上运行良好,并且过去也可以在本地运行。最近,我尝试再次在本地测试同一个应用程序,但不断收到以下错误 - 尽管我使用的是 Heroku 上托管的完全相同的代码:
redis.exceptions.DataError: Invalid input of type: 'NoneType'. Convert to a byte, string or number first.
Run Code Online (Sandbox Code Playgroud)
在我的requirements.txt和Ubuntu 18.04上的虚拟环境中,我有redis v.3.0.1,rq 0.13.0
当我在终端上运行 redis-server 时,我看到使用了 Redis 4.0.9(这也让我感到困惑)。
我尝试谷歌搜索两天寻找解决方案,但没有成功。
有谁知道可能发生了什么以及如何解决这个错误?
这是完整的相关回溯:
File "/home/tom/dashenv/pb101_models/pages/cumulative_culture.py", line 1026, in stop_or_start_update
job = q.fetch_job(job_id)
File "/home/tom/dashenv/dash/lib/python3.6/site-packages/rq/queue.py", line 142, in fetch_job
self.remove(job_id)
File "/home/tom/dashenv/dash/lib/python3.6/site-packages/rq/queue.py", line 186, in remove
return self.connection.lrem(self.key, 1, job_id)
File "/home/tom/dashenv/dash/lib/python3.6/site-packages/redis/client.py", line 1580, in lrem
return self.execute_command('LREM', name, count, value)
File "/home/tom/dashenv/dash/lib/python3.6/site-packages/redis/client.py", line 754, …Run Code Online (Sandbox Code Playgroud) 以下代码不会在 Jupyter 实验室中呈现:
%matplotlib widget
import plotly.express as px
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(5, 4)), columns=list('ABCD'))
px.bar(df, x='A', y='B')
Run Code Online (Sandbox Code Playgroud)
我试图安装这里提到的所有依赖项和扩展
https://plot.ly/python/getting-started/#jupyterlab-support-python-35
还有这里的步骤 https://github.com/matplotlib/jupyter-matplotlib
没有任何效果
这是我的设置:
jupyter lab --version
1.0.2
python --version
Python 3.6.1 :: Continuum Analytics, Inc.
conda list jupyterlab
# packages in environment at C:\Users\***\Anaconda3:
#
# Name Version Build Channel
jupyterlab 1.0.2 py36hf63ae98_0
jupyterlab_launcher 0.13.1 py36_0
jupyterlab_server 1.0.0 py_0
conda list nodejs
# packages in environment at C:\Users\***\Anaconda3:
#
# Name Version …Run Code Online (Sandbox Code Playgroud) 我有一个 Jupyter 笔记本(python),我使用 plotly express 在笔记本中绘图以进行分析。我想与非编码人员共享此笔记本,并且仍然可以使用交互式视觉效果 - 但它似乎不起作用。
我尝试遵循此处提出的建议,但即使在保存小部件状态并使用 之后nbconvert,当我打开新的 HTML 文件时,视觉效果也不可用。
绘图的示例线如下所示:
import plotly_express as px
fig = px.scatter(
df,
x='size',
y='size_y',
color='clients',
hover_data=['id'],
marginal_y="histogram",
marginal_x="histogram"
)
fig.show()
Run Code Online (Sandbox Code Playgroud) python data-visualization plotly jupyter-notebook plotly-express
我刚刚安装了plotly express。我正在尝试做一些简单的事情 - 将我的数据框的每一列绘制在同一个 y 轴上,索引作为 x 轴。以下是问题/观察:
数据框是否有必要将索引作为列用作 x 轴?我可以不直接使用 x 轴的索引吗?如何为同一个 x 轴添加在 y 轴上以绘图方式调用的多个轨迹?
请注意,我不是尝试使用 plotly 添加跟踪,而是尝试使用 plotly-express。
此外,网上有一些类似的帖子,最接近的是这个:https : //community.plot.ly/t/multiple-traces-plotly-express/23360 但是,这篇文章展示了如何添加散点,而不是一条线. 我想绘制一条线,但没有类似于此处示例中显示的 add_scatter 的 add_line。
提前感谢任何帮助
示例代码:
import plotly.express as px
import pandas as pd
import numpy as np
# Get some data
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
# Plot
fig = px.line(df, x='Date', y='AAPL.High')
# Only thing I figured is - I could do this
fig.add_scatter(x=df['Date'], y=df['AAPL.Low']) # Not what is desired - need …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 plotly 绘制印度地图,但无法找到一种方法来做到这一点。以下是我为美国尝试的代码。
import pandas as pd
df_sample = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/laucnty16.csv')
df_sample['State FIPS Code'] = df_sample['State FIPS Code'].apply(lambda x: str(x).zfill(2))
df_sample['County FIPS Code'] = df_sample['County FIPS Code'].apply(lambda x: str(x).zfill(3))
df_sample['FIPS'] = df_sample['State FIPS Code'] + df_sample['County FIPS Code']
colorscale = ["#f7fbff","#ebf3fb","#deebf7","#d2e3f3","#c6dbef","#b3d2e9","#9ecae1",
"#85bcdb","#6baed6","#57a0ce","#4292c6","#3082be","#2171b5","#1361a9",
"#08519c","#0b4083","#08306b"]
endpts = list(np.linspace(1, 12, len(colorscale) - 1))
fips = df_sample['FIPS'].tolist()
values = df_sample['Unemployment Rate (%)'].tolist()
fig = ff.create_choropleth(
fips=fips, values=values,
binning_endpoints=endpts,
colorscale=colorscale,
show_state_data=False,
show_hover=True, centroid_marker={'opacity': 0},
asp=2.9, title='USA by Unemployment %',
legend_title='% unemployed'
)
fig.layout.template = None
fig.show() …Run Code Online (Sandbox Code Playgroud) 我正在尝试与plotly,特别是ploty express,构建一些可视化。
我正在构建的一件事是散点图
我在下面有一些代码,它产生了一个很好的散点图:
import plotly.graph_objs as go, pandas as pd, plotly.express as px
df = pd.read_csv('iris.csv')
fig = px.scatter(df, x='sepal_length', y='sepal_width',
color='species', marker_colorscale=px.colors.sequential.Viridis)
fig.show()
Run Code Online (Sandbox Code Playgroud)
但是,我想尝试更改配色方案,即为每个物种呈现的颜色。
我读过了:
但是不能让颜色改变。
试:
fig = px.scatter(df, x='sepal_length', y='sepal_width',
color='species', marker_colorscale=px.colors.sequential.Viridis)
Run Code Online (Sandbox Code Playgroud)
产量:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-78a9d58dce23> in <module>
2 # https://plotly.com/python/line-and-scatter/
3 fig = px.scatter(df, x='sepal_length', y='sepal_width',
----> 4 color='species', marker_colorscale=px.colors.sequential.Viridis)
5 fig.show()
TypeError: scatter() got an unexpected keyword argument 'marker_colorscale'
Run Code Online (Sandbox Code Playgroud)
试
试: …
我如何利用 plotly.express 在一个 Pandas 数据框中的两个 yaxis 上绘制多条线?
我发现这对于绘制包含特定子字符串的所有列非常有用:
fig = px.line(df, y=df.filter(regex="Linear").columns, render_mode="webgl")
Run Code Online (Sandbox Code Playgroud)
因为我不想遍历所有过滤的列并使用以下内容:
fig.add_trace(go.Scattergl(x=df["Time"], y=df["Linear-"]))
Run Code Online (Sandbox Code Playgroud)
在每次迭代中。
我想在python中的plotly express中更改变量/标签名称。我首先创建一个情节:
import pandas as pd
import plotly.express as px
d = {'col1': [1, 2, 3], 'col2': [3, 4, 5]}
df = pd.DataFrame(data=d)
fig = px.line(df, x=df.index, y=['col1', 'col2'])
fig.show()
Run Code Online (Sandbox Code Playgroud)
其中产生:
我想将标签名称从col1更改为hello并将col2更改为hi。我曾尝试在图中使用标签,但无法使其正常工作:
fig = px.line(df, x=df.index, y=['col1', 'col2'], labels={'col1': "hello", 'col2': "hi"})
fig.show()
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何作用,同时不会产生错误。显然我可以通过更改列名来实现我的目标,但我试图创建的实际图并没有真正允许这样做,因为它来自几个不同的数据框。
我正在尝试将交互式绘图(或散景)图嵌入到 excel 中。
为此,我尝试了以下三件事:
这有效并且可以加载在线和离线 html
'''
import plotly
import plotly.graph_objects as go
x = [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0]
y = [i**2 for i in x]
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=x, mode='markers', name="y=x", marker=dict(color='royalblue', size=8)))
fig.add_trace(go.Scatter(x=x, y=y, name="y=x^2", line=dict(width=3)))
plotly.offline.plot(fig, filename='C:/Users/.../pythonProject/test1.html')
Run Code Online (Sandbox Code Playgroud)
.Navigate本地 plotly.html 将excel 中的 webbrowser 对象重新指向。横幅弹出“.... 限制此文件显示可以访问您的计算机的活动内容”
点击横幅,我遇到了这个错误:
可以在浏览器中打开相同的 HTML。
有没有办法在excel中显示交互式绘图?