- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试绘制三个图表(日、月、年),并让用户可以通过下拉菜单选择他们想要查看的图表。当我为(日,月)执行此操作时,它工作得很好(月份显示为默认图表),但是当我添加(年)时,(日,月)不显示(在这种情况下,我想要年作为默认图表)。
这是工作代码:
# Plot Day
temp_day = pd.DataFrame(df.day.value_counts())
temp_day.reset_index(inplace=True)
temp_day.columns = ['day', 'tweet_count']
temp_day.sort_values(by=['day'], inplace=True)
temp_day.reset_index(inplace=True, drop=True)
trace_day = go.Scatter(
x=temp_day.day.values,
y=temp_day.tweet_count.values,
text = [f"{humanize.naturaldate(day)}: {count} tweets" for day,count in zip(temp_day.day.values,temp_day.tweet_count.values)],
hoverinfo='text',
mode='lines',
line = {
'color': my_color,
'width': 1.2
},
visible=False,
name="Day"
)
# Plot Month
temp_month = pd.DataFrame(df.YYYYMM.value_counts())
temp_month.reset_index(inplace=True)
temp_month.columns = ['YYYYMM', 'tweet_count']
temp_month['YYYYMM'] = temp_month['YYYYMM'].dt.strftime('%Y-%m')
temp_month.sort_values(by=['YYYYMM'], inplace=True)
temp_month.reset_index(inplace=True, drop=True)
trace_month = go.Scatter(
x=temp_month.YYYYMM.values,
y=temp_month.tweet_count.values,
mode='lines',
line = {
'color': my_color,
'width': 1.2
},
visible=True,
name="Month"
)
# Menus
updatemenus = list([
dict(
active=0,
buttons=list([
dict(label = 'Month',
method = 'update',
args = [{'visible': [True, False]},
{'title': 'Number of Tweets per Month'}]),
dict(label = 'Day',
method = 'update',
args = [{'visible': [False, True]},
{'title': 'Number of Tweets per Day'}]),
]),
)
])
# Layout
layout = go.Layout(title="Number of Tweets -- Pick a scale",
updatemenus=updatemenus,
)
fig = go.Figure(data=[trace_month, trace_day], layout=layout)
iplot(fig)
# Plot Day
temp_day = pd.DataFrame(df.day.value_counts())
temp_day.reset_index(inplace=True)
temp_day.columns = ['day', 'tweet_count']
temp_day.sort_values(by=['day'], inplace=True)
temp_day.reset_index(inplace=True, drop=True)
trace_day = go.Scatter(
x=temp_day.day.values,
y=temp_day.tweet_count.values,
text = [f"{humanize.naturaldate(day)}: {count} tweets" for day,count in zip(temp_day.day.values,temp_day.tweet_count.values)],
hoverinfo='text',
mode='lines',
line = {
'color': my_color,
'width': 1.2
},
visible=False,
name="Day"
)
# Plot Month
temp_month = pd.DataFrame(df.YYYYMM.value_counts())
temp_month.reset_index(inplace=True)
temp_month.columns = ['YYYYMM', 'tweet_count']
temp_month['YYYYMM'] = temp_month['YYYYMM'].dt.strftime('%Y-%m')
temp_month.sort_values(by=['YYYYMM'], inplace=True)
temp_month.reset_index(inplace=True, drop=True)
trace_month = go.Scatter(
x=temp_month.YYYYMM.values,
y=temp_month.tweet_count.values,
mode='lines',
line = {
'color': my_color,
'width': 1.2
},
visible=False,
name="Month"
)
# Plot year
temp_year = pd.DataFrame(df.year.value_counts())
temp_year.reset_index(inplace=True)
temp_year.columns = ['year', 'tweet_count']
temp_year.sort_values(by=['year'], inplace=True)
temp_year.reset_index(inplace=True, drop=True)
trace_year = go.Scatter(
x=temp_year.year.values,
y=temp_year.tweet_count.values,
text = [f"Year {year}: {count:,.0f} tweets" for year,count in zip(temp_year.year.values,temp_year.tweet_count.values)],
hoverinfo='text',
mode='lines+markers',
line = {
'color': my_color,
'width': 1.2
},
visible=True,
name="Year"
)
# Menus
updatemenus = list([
dict(
active=0,
buttons=list([
dict(label = 'Year',
method = 'update',
args = [{'visible': [True, False, False]},
{'title': 'Number of Tweets per Month'}]),
dict(label = 'Month',
method = 'update',
args = [{'visible': [False, True, False]},
{'title': 'Number of Tweets per Month'}]),
dict(label = 'Day',
method = 'update',
args = [{'visible': [False, False, True]},
{'title': 'Number of Tweets per Day'}]),
]),
)
])
# Layout
layout = go.Layout(title="Number of Tweets -- Pick a scale",
updatemenus=updatemenus,
)
fig = go.Figure(data=[trace_year, trace_month, trace_day], layout=layout)
iplot(fig)
# Year
Scatter({
'hoverinfo': 'text',
'line': {'color': '#ff00a7', 'width': 1.2},
'mode': 'lines+markers',
'name': 'Year',
'text': [Year 2011: 73 tweets, Year 2012: 562 tweets, Year 2013: 1,153 tweets,
Year 2014: 700 tweets, Year 2015: 2,104 tweets, Year 2016: 1,816
tweets, Year 2017: 1,691 tweets, Year 2018: 1,082 tweets, Year 2019:
914 tweets, Year 2020: 482 tweets],
'visible': False,
'x': array([2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020]),
'y': array([ 73, 562, 1153, 700, 2104, 1816, 1691, 1082, 914, 482])
})
# Month
Scatter({
'line': {'color': '#ff00a7', 'width': 1.2},
'mode': 'lines',
'name': 'Month',
'visible': False,
'x': array(['2011-06', '2011-07', '2011-08', '2011-09', '2011-10', '2011-11',
'2011-12', '2012-01', '2012-02', '2012-03', '2012-04', '2012-05',
'2012-06', '2012-07', '2012-08', '2012-09', '2012-10', '2012-11',
'2012-12', '2013-01', '2013-02', '2013-03', '2013-04', '2013-05',
'2013-06', '2013-07', '2013-08', '2013-09', '2013-10', '2013-11',
'2013-12', '2014-01', '2014-02', '2014-03', '2014-04', '2014-05',
'2014-06', '2014-07', '2014-08', '2014-09', '2014-10', '2014-11',
'2014-12', '2015-01', '2015-02', '2015-03', '2015-04', '2015-05',
'2015-06', '2015-07', '2015-08', '2015-09', '2015-10', '2015-11',
'2015-12', '2016-01', '2016-02', '2016-03', '2016-04', '2016-05',
'2016-06', '2016-07', '2016-08', '2016-09', '2016-10', '2016-11',
'2016-12', '2017-01', '2017-02', '2017-03', '2017-04', '2017-05',
'2017-06', '2017-07', '2017-08', '2017-09', '2017-10', '2017-11',
'2017-12', '2018-01', '2018-02', '2018-03', '2018-04', '2018-05',
'2018-06', '2018-07', '2018-08', '2018-09', '2018-10', '2018-11',
'2018-12', '2019-01', '2019-02', '2019-03', '2019-04', '2019-05',
'2019-06', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12',
'2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06'],
dtype=object),
'y': array([ 1, 1, 2, 8, 4, 20, 37, 79, 16, 13, 8, 12, 2, 5,
68, 139, 57, 64, 99, 182, 63, 60, 74, 128, 59, 109, 126, 86,
77, 112, 77, 78, 44, 32, 22, 33, 46, 61, 66, 109, 81, 78,
50, 140, 151, 297, 173, 225, 69, 119, 213, 177, 134, 217, 189, 255,
149, 114, 127, 154, 116, 110, 150, 184, 179, 117, 161, 48, 115, 147,
153, 199, 174, 195, 154, 162, 114, 140, 90, 156, 81, 107, 62, 64,
49, 128, 127, 60, 89, 115, 44, 58, 86, 65, 102, 93, 82, 78,
158, 65, 50, 77, 55, 71, 70, 105, 124, 57])
})
# Day
Scatter({
'hoverinfo': 'text',
'line': {'color': '#ff00a7', 'width': 1.2},
'mode': 'lines',
'name': 'Day',
'text': [Jun 04 2011: 1 tweets, Jul 17 2011: 1 tweets, Aug 11 2011: 1 tweets,
..., Jun 17: 4 tweets, Jun 18: 1 tweets, Jun 19: 3 tweets],
'visible': False,
'x': array([datetime.date(2011, 6, 4), datetime.date(2011, 7, 17),
datetime.date(2011, 8, 11), ..., datetime.date(2020, 6, 17),
datetime.date(2020, 6, 18), datetime.date(2020, 6, 19)], dtype=object),
'y': array([1, 1, 1, ..., 4, 1, 3])
})
最佳答案
由于您提供了一个不起作用的数据样本,因此很难分辨代码片段中哪些有效,哪些无效。但是,我确实有一个建议可以直接回答您的问题:
I am trying to plot three graphs (day, month, year) and give the userthe option to pick which graph they want to see with a dropdown menu
year
和
month
.这些是您提供的确切数据集。当您获得
days
的工作样本时,该数据集可以很容易地包含在内。当你准备好时,我很乐意为你做这件事。
year
和
month
使用下拉菜单。如果设计 wrt 线条和标记样式不符合您的喜好,请不要担心。这只是作为占位符包含在代码中,供您根据需要进行更改。
import plotly.graph_objects as go
import pandas as pd
df_y=pd.DataFrame({'x':[2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020],
'y':[ 73, 562, 1153, 700, 2104, 1816, 1691, 1082, 914, 482]})
df_m=pd.DataFrame({'x':['2011-06', '2011-07', '2011-08', '2011-09', '2011-10', '2011-11',
'2011-12', '2012-01', '2012-02', '2012-03', '2012-04', '2012-05',
'2012-06', '2012-07', '2012-08', '2012-09', '2012-10', '2012-11',
'2012-12', '2013-01', '2013-02', '2013-03', '2013-04', '2013-05',
'2013-06', '2013-07', '2013-08', '2013-09', '2013-10', '2013-11',
'2013-12', '2014-01', '2014-02', '2014-03', '2014-04', '2014-05',
'2014-06', '2014-07', '2014-08', '2014-09', '2014-10', '2014-11',
'2014-12', '2015-01', '2015-02', '2015-03', '2015-04', '2015-05',
'2015-06', '2015-07', '2015-08', '2015-09', '2015-10', '2015-11',
'2015-12', '2016-01', '2016-02', '2016-03', '2016-04', '2016-05',
'2016-06', '2016-07', '2016-08', '2016-09', '2016-10', '2016-11',
'2016-12', '2017-01', '2017-02', '2017-03', '2017-04', '2017-05',
'2017-06', '2017-07', '2017-08', '2017-09', '2017-10', '2017-11',
'2017-12', '2018-01', '2018-02', '2018-03', '2018-04', '2018-05',
'2018-06', '2018-07', '2018-08', '2018-09', '2018-10', '2018-11',
'2018-12', '2019-01', '2019-02', '2019-03', '2019-04', '2019-05',
'2019-06', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12',
'2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06'],
'y':[ 1, 1, 2, 8, 4, 20, 37, 79, 16, 13, 8, 12, 2, 5,
68, 139, 57, 64, 99, 182, 63, 60, 74, 128, 59, 109, 126, 86,
77, 112, 77, 78, 44, 32, 22, 33, 46, 61, 66, 109, 81, 78,
50, 140, 151, 297, 173, 225, 69, 119, 213, 177, 134, 217, 189, 255,
149, 114, 127, 154, 116, 110, 150, 184, 179, 117, 161, 48, 115, 147,
153, 199, 174, 195, 154, 162, 114, 140, 90, 156, 81, 107, 62, 64,
49, 128, 127, 60, 89, 115, 44, 58, 86, 65, 102, 93, 82, 78,
158, 65, 50, 77, 55, 71, 70, 105, 124, 57]})
# IMPROVEMENT 1
# INSERT ANOTHER DATAFRAME FOR DAYS HERE WITH THE SAME STRUCTURE AS ABOVE
# IMPROVEMENT 1
# INCLUDE THE DATAFRAME AS VALUE AND THE NAME df_d as key
# in the dict below:
dfc = {'year':df_y, 'month':df_m}
# set index
for df in dfc.keys():
dfc[df].set_index('x', inplace=True)
# plotly start
fig = go.Figure()
# menu setup
updatemenu= []
# buttons for menu 1, names
buttons=[]
# plotly start
fig = go.Figure()
# one trace for each column per dataframe: AI and RANDOM
for df in dfc.keys():
fig.add_trace(go.Scatter(x=dfc[df].index,
y=dfc[df]['y'],
visible=True,
#marker=dict(size=12, line=dict(width=2)),
#marker_symbol = 'diamond',
name=df
)
)
# some line settings for fun
lines = [dict(color='royalblue', width=2, dash='dot'), dict(color='firebrick', width=1, dash='dash')]
markers = [dict(size=12, line=dict(width=2)), dict(size=12, line=dict(width=2))]
# create traces for each color:
# build argVals for buttons and create buttons
for i, df in enumerate(dfc.keys()):
args_y = []
args_x = []
for col in dfc[df]:
args_y.append(dfc[df][col].values)
args_x.append(dfc[df].index)
argVals = [ {'y':args_y, 'x':args_x,
'marker':markers[i], 'line': lines[i]}]
buttons.append(dict(method='update',
label=df,
visible=True,
args=argVals))
updatemenu=[]
your_menu=dict()
updatemenu.append(your_menu)
updatemenu[0]['buttons']=buttons
updatemenu[0]['direction']='down'
updatemenu[0]['showactive']=True
fig.update_layout(showlegend=False, updatemenus=updatemenu)
fig.show()
关于python - Plotly:如何使用下拉菜单按年、月和日对数据进行子集化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62501451/
初学者 android 问题。好的,我已经成功写入文件。例如。 //获取文件名 String filename = getResources().getString(R.string.filename
我已经将相同的图像保存到/data/data/mypackage/img/中,现在我想显示这个全屏,我曾尝试使用 ACTION_VIEW 来显示 android 标准程序,但它不是从/data/dat
我正在使用Xcode 9,Swift 4。 我正在尝试使用以下代码从URL在ImageView中显示图像: func getImageFromUrl(sourceUrl: String) -> UII
我的 Ubuntu 安装 genymotion 有问题。主要是我无法调试我的数据库,因为通过 eclipse 中的 DBMS 和 shell 中的 adb 我无法查看/data/文件夹的内容。没有显示
我正在尝试用 PHP 发布一些 JSON 数据。但是出了点问题。 这是我的 html -- {% for x in sets %}
我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。 > library(forecast) > set.seed(2) > tts lm(t
我不确定为什么会这样!我有一个由 spring data elasticsearch 和 spring data jpa 使用的类,但是当我尝试运行我的应用程序时出现错误。 Error creatin
在 this vega 图表,如果我下载并转换 flare-dependencies.json使用以下 jq 到 csv命令, jq -r '(map(keys) | add | unique) as
我正在提交一个项目,我必须在其中创建一个带有表的 mysql 数据库。一切都在我这边进行,所以我只想检查如何将我所有的压缩文件发送给使用不同计算机的人。基本上,我如何为另一台计算机创建我的数据库文件,
我有一个应用程序可以将文本文件写入内部存储。我想仔细看看我的电脑。 我运行了 Toast.makeText 来显示路径,它说:/数据/数据/我的包 但是当我转到 Android Studio 的 An
我喜欢使用 Genymotion 模拟器以如此出色的速度加载 Android。它有非常好的速度,但仍然有一些不稳定的性能。 如何从 Eclipse 中的文件资源管理器访问 Genymotion 模拟器
我需要更改 Silverlight 中文本框的格式。数据通过 MVVM 绑定(bind)。 例如,有一个 int 属性,我将 1 添加到 setter 中的值并调用 OnPropertyChanged
我想向 Youtube Data API 提出请求,但我不需要访问任何用户信息。我只想浏览公共(public)视频并根据搜索词显示视频。 我可以在未经授权的情况下这样做吗? 最佳答案 YouTube
我已经设置了一个 Twilio 应用程序,我想向人们发送更新,但我不想回复单个文本。我只是想让他们在有问题时打电话。我一切正常,但我想在发送文本时显示传入文本,以确保我不会错过任何问题。我正在使用 p
我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的: 接受用户的输入 --- 5 个整数 通过 REST 调用网络服务 在服务器端运行一些计算...并生成一个
假设我们有一个名为 configuration.js 的文件,当我们查看内部时,我们会看到: 'use strict'; var profile = { "project": "%Projec
这部分是对 Previous Question 的扩展我的: 我现在可以从我的 CI Controller 成功返回 JSON 数据,它返回: {"results":[{"id":"1","Sourc
有什么有效的方法可以删除 ios 中 CBL 的所有文档存储?我对此有疑问,或者,如果有人知道如何从本质上使该应用程序像刚刚安装一样,那也会非常有帮助。我们正在努力确保我们的注销实际上将应用程序设置为
我有一个 Rails 应用程序,它与其他 Rails 应用程序通信以进行数据插入。我使用 jQuery $.post 方法进行数据插入。对于插入,我的其他 Rails 应用程序显示 200 OK。但在
我正在为服务于发布请求的 API 调用运行单元测试。我正在传递请求正文,并且必须将响应作为帐户数据返回。但我只收到断言错误 注意:数据是从 Azure 中获取的 spec.js const accou
我是一名优秀的程序员,十分优秀!