这是我的代码:
from plotly import graph_objs as go
import numpy as np
import os
from plotly.subplots import make_subplots
fig = make_subplots(rows=2, cols=1)
# Table product views
fig.add_trace(
go.Table(
header=dict(values=["Period", "Views"]),
cells=dict(values=[
[
"01/09/2019 - 07/09/2019",
"08/09/2019 - 14/09/2019",
"15/09/2019 - 21/09/2019",
"22/09/2019 - 28/09/2019"
],
[15, 25, 35, 32]
])
)
)
# Chart product views
fig.add_trace(
go.Bar(
x=[
"01/09/2019 - 07/09/2019",
"08/09/2019 - 14/09/2019",
"15/09/2019 - 21/09/2019",
"22/09/2019 - 28/09/2019"
],
y=[15, 25, 35, 32],
),
row=2,
col=1
)
if …Run Code Online (Sandbox Code Playgroud) 这是一个自我回答的帖子。为什么?因为 Power BI 中的许多问题由于缺乏数据样本而没有得到解答。此外,许多人似乎想知道如何使用 Python 在 Power BI 中编辑数据表。当然,世界需要在 Power BI 中更广泛地使用 Python。有些人认为您必须将 Python 代码段应用于加载到其他地方的现有表。我对这篇文章的回答将向您展示如何在一个空的 Power BI 文件中使用几行代码构建一个(相当大的)数据样本。
那么,如何在 Power BI 中使用 Python 构建数据示例并对其进行更改?
我在 Python 中绘制了 scatter_geo 图。
import plotly.express as px
import pandas as pd
rows=[['501-600','65','122.58333','45.36667'],
['till 500','54','12.5','27.5'],
['more 1001','51','-115.53333','38.08'],
['601-1000','54','120.54167','21.98'],
]
colmns=['bins','data','longitude','latitude']
df=pd.DataFrame(data=rows, columns=colmns)
fig=px.scatter_geo(df,lon='longitude', lat='latitude',color='bins',
opacity=0.5,
projection="natural earth")
fig.show()
Run Code Online (Sandbox Code Playgroud)
如果我只有一条数据痕迹,是否有可能在图例标签中自定义顺序?
因为现在图例中的标签如下所示:
501-600
till 500
more 1001
601-1000
Run Code Online (Sandbox Code Playgroud)
我需要让它们看起来像这样:
till 500
501-600
601-1000
more 1001
Run Code Online (Sandbox Code Playgroud) 有没有什么方法可以包装单元格(使长文本适合我的单元格),并将它们放在中心?这是我的桌子:
import plotly.graph_objects as go
fig = go.Figure(data=[go.Table(
header=dict(values=['','Monday','Tuesday','Wednesday','thursday','friday','saturday','sunday'],
line_color='darkslategray',
fill_color='lightgray',
align='center'),
cells=dict(values=[['asdasdasd', 'xvxdwefsdf','asdadwq','zxvwefqewf','wqe124qs'],
["res", 'ds', 'ob', 'pww', 'kw'], # 1 column
['res1', 'ds1', 'ob1', 'pww1', 'kw1'],# 2 column
['res2', 'ds2', 'ob2qweqweqweqweqweqew', 'pww2', 'kw2'],# 3 column
['res3', 'ds3', 'ob4', 'pww3', 'kw3'],# 4 column
['res4', 'ds4', 'ob5', 'pw14151222231231dvzv3123123w4', 'kw4'],# 5 column
['Pancakes' , 'ds5', 'ob6', 'pww5', 'kw5'] ,# 6 column
['Jajecznica', 'ds6', 'obnd' , 'pww6' ,'kw6']], # 7 column
line_color='darkslategray',
fill_color='white',
align='center',
height=60))
])
values=['asdasdasd', 'xvxdwefsdf','asdadwq','zxvwefqewf','wqe124qs']
fig.update_layout(width=1300, height=700)
fig.show()
Run Code Online (Sandbox Code Playgroud) 如何使用plotly.graph_objs类似的方式绘制熊猫数据plotly.express- 特别是为各种数据类型着色?
基于 Pandas 列中的值对数据类型进行分组的 plotly express 功能非常有用。不幸的是,我不能在我的系统中使用 express (因为我需要将图形对象发送到orca)
我可以通过专门映射Type到颜色来获得相同的功能(full_plot在下面的示例中),但是我有类型 AZ,是否有更好的方法Type将数据框中的每种可能映射到颜色?
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
d = {'Scenario': [1, 2, 3, 1, 2,3],
'Type': ["A", "A", "A", "B", "B", "B"],
'VAL_1': [100, 200, 300, 400 , 500, 600],
'VAL_2': [1000, 2000, 3000, 4000, 5000, 6000]}
df = pd.DataFrame(data=d)
def quick_plot(df):
fig = px.bar(df, y='VAL_1', x='Scenario', color="Type", barmode='group')
fig['layout'].update(title = …Run Code Online (Sandbox Code Playgroud) 我想更改图例中项目的名称。下面是一个可重现的例子。
import plotly.express as px
df = px.data.iris()
colorsIdx = {'setosa': '#c9cba3', 'versicolor': '#ffe1a8',
'virginica': '#e26d5c'}
cols = df['species'].map(colorsIdx)
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
color=cols)
fig.show()
Run Code Online (Sandbox Code Playgroud)
因为我将自己的颜色分配给了我想重命名图例的物种,所以它不会显示为“#c9cba3”、“#ffe1a8”和“#e26d5c”。相反,我想成为“setosa”“versicolor”和“virginica”
我开始学习更多关于 plotly 和 pandas 的知识,并有一个多变量时间序列,我希望使用 plotly.express 功能进行绘制和交互。我还希望我的绘图具有水平滚动条,以便初始绘图用于预先指定的初始时间间隔。这是我的示例,涉及三个时间序列以及 10 万个时间点:
import plotly.express as px
import numpy as np
import pandas as pd
np.random.seed(123)
e = np.random.randn(100000,3)
df=pd.DataFrame(e, columns=['a','b','c'])
df['x'] = df.index
df_melt = pd.melt(df, id_vars="x", value_vars=df.columns[:-1])
fig=px.line(df_melt, x="x", y="value",color="variable")
fig.show()
Run Code Online (Sandbox Code Playgroud)
(对于我的最终目的,时间序列会更大——在 90 万多个时间点中可能有 40 到 70 个时间序列。)
这将创建一个图形,我可以使用 plotly.express 功能与之交互,例如缩放、平移、矩形选择等。
有没有一种方法可以增加它,以便初始图仅显示前 500 个时间点,并且滚动条允许我调查随着时间的增加会发生什么?
在空闲时使用 Mac OS 10.15.4 和 Python 3.7。我希望在 IDLE 中而不是在 Jupyter notebook 环境中创建它。
我正在生成绘图图形并使用闪亮的应用程序发布来自我的国家的新冠病毒数据。
但是当我生成绘图时,默认模式栏按钮是“缩放”功能,这使得它在智能手机上的使用变得复杂:
我需要“平移”功能是默认按钮,但我可以找到解决方案。
提前致谢。
我想在图中创建额外的注释空间(请参阅附图中的绿色区域)。目前,y 轴定义了绘图的高度。我可以将绘图推到超出 y.max 限制/在某个点(在图像中标记为红色)之后隐藏 y 轴吗?我尝试避免轴到达“评论部分”(绿色)。
谢谢你!
我目前正在构建一个带有破折号和绘图的财务仪表板。我将以下烛台图添加到我的仪表板中:
candlestick_chart = go.Figure(data=[go.Candlestick(x=financial_data["Date"],
open=financial_data['Open'],
high=financial_data['High'],
low=financial_data['Low'],
close=financial_data['Close'])])
Run Code Online (Sandbox Code Playgroud)
我希望能够突出显示特定的烛台(例如使用标记)
我尝试使用该add_trace函数和以下代码来实现此目的:
candlestick_chart.add_trace(
go.Scatter(
x=["2020-07-01"],
y=["350"],
mode="markers",
marker=dict(symbol="6")
)
)
Run Code Online (Sandbox Code Playgroud)
但这破坏了图表。
为什么会发生这种情况?我怎样才能解决这个问题?
编辑:添加数据源
我从https://finance.yahoo.com/quote/SPY/history?p=SPY获取数据,时间段设置为最大值。
我按照以下方式解析数据:
start = "2000-01-01"
end = "2021-01-01"
# Get a pandas dataframe
datapath = ('D:\\Programmieren\\trading_bot\\etf_data\\SPY.csv')
financial_data = pd.read_csv(datapath,
parse_dates=True,
index_col=0)
financial_data= financial_data.loc[start:end]
# Process data
financial_data = financial_data["2020-06-01":"2021-01-01"]
financial_data.reset_index(inplace=True)
Run Code Online (Sandbox Code Playgroud)
EDIT2:系统和版本
我的软件包有以下版本:
print(pd.__version__) # 1.2.3
print(plotly.__version__) # 4.14.3
Run Code Online (Sandbox Code Playgroud)
我正在与: