我正在尝试使用plotly 绘制包含日期数据的直方图。我想用与周相对应的垃圾箱大小来绘制它,但这似乎不起作用。我搜索了有关它的文档但没有找到任何内容。
这是我的代码。我尝试过(第 5 行):“D7”和“W1”。这不起作用(情节似乎不识别争论,并将其设置为每天一个垃圾箱)。奇怪的是“M1”、“M3”等......似乎有效
fig = go.Figure(data=[go.Histogram(x=df.col,
xbins=dict(
start='2018-01-01',
end='2018-12-31',
size='D7'),
autobinx=False)])
fig.update_layout(
title=go.layout.Title(
text="title",
xref="paper",
x=0.5
),
xaxis_title_text='xaxis title',
yaxis_title_text='yaxis title'
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
有人有关于这个问题的任何信息吗?谢谢
此处已针对 Jupyter Notebooks 提出并回答了此问题。还有一个关于 Jupyter Lab 的建议,以及如何隐藏单元格输出,但不清除它。
使用 下的菜单很容易做到这一点Edit > Clear Outputs。但是你如何使用键盘快捷键来做到这一点?下面的许多其他命令Edit已经有自己指定的快捷方式,但不是这个:
我正在尝试绘制三个图形(日、月、年),并让用户可以选择使用下拉菜单选择他们想要查看的图形。当我为 (day, month) 做它时,它完美地工作(以月份显示为默认图表),但是当我添加(year)时,则(day, month)不显示(在这种情况下,我想要 year成为默认图形)。
这是工作代码:
# 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 …Run Code Online (Sandbox Code Playgroud)我有一个超过70列的pandas DataFrame.
当我对它进行计算时,firefox(在Windows上)将DataFrame打印在比为其分配的窗口更大的空间中.我希望滚动条适合分配给它的ipython窗口.有没有干净的方法来处理这个?
它可以在ifoxthon笔记本窗口中使用此代码在firefox中重新创建.
df = pd.DataFrame(np.random.randn(100, 20))
df.tail()
Run Code Online (Sandbox Code Playgroud) 我想首先使用ggmap绘制以经度和纬度为轴的特定区域。
然后,考虑到经度和纬度,我想将ggplot2小图放在特定位置。这些可以是主题最少的酒吧。
我的数据库可能包含以下列:
1. town
2. longitude
3. latitude
4. through 6. value A, B, C
Run Code Online (Sandbox Code Playgroud)
我生成一个图(伪代码)
p <- ggmap(coordinates)
Run Code Online (Sandbox Code Playgroud)
而且我有最小的ggplot2设计
q<-ggplot2()+geom_bar(....)+ ... x-axis null y axis null minimal template
Run Code Online (Sandbox Code Playgroud)
如何将两种设计结合在一起,以使ggmap具有在地图的特定坐标上施加的最小最小ggplot图?
我想换df.groupby(pd.TimeGrouper(freq='M')).sum()一个函数,这样我可以分配sum(),mean()或count()在该函数的参数。我之前在这里问过一个类似的问题,但我认为在这种特殊情况下我不能使用相同的技术。
这是一个具有可重现输入的片段:
# Imports
import pandas as pd
import numpy as np
# Dataframe with 1 or zero
# 100 rows and 4 columns
# Indexed by dates
np.random.seed(12345678)
df = pd.DataFrame(np.random.randint(0,2,size=(100, 4)), columns=list('ABCD'))
datelist = pd.date_range(pd.datetime(2017, 1, 1).strftime('%Y-%m-%d'), periods=100).tolist()
df['dates'] = datelist
df = df.set_index(['dates'])
df.index = pd.to_datetime(df.index)
print(df.head(10))
Run Code Online (Sandbox Code Playgroud)
这使:
有了这个,我们可以做到:
df2 = df.groupby(pd.TimeGrouper(freq='M')).sum()
print(df2)
Run Code Online (Sandbox Code Playgroud)
并得到:
或者我们可以这样做:
df3 = df.groupby(pd.TimeGrouper(freq='M')).mean()
print(df3)
Run Code Online (Sandbox Code Playgroud)
并得到:
这是包装成函数的过程的一部分:
# My function
def function1(df):
df …Run Code Online (Sandbox Code Playgroud) 我有一个带有随机数的pandas数据帧,其中索引是类型dtype='datetime64[ns].您将在问题的最后找到可重现的代码.
当我使用时ax.dfplot(),我会得到一个格式精美的x轴,如下所示:
我想制作一个条形图,但是当我使用时ax = df.plot(kind = 'bar'),x轴会搞砸:
我怎么能改变这个?
谢谢你的任何建议!
输入数据框的可重现代码和两个第一个图表:
import pandas as pd
import numpy as np
import matplotlib.dates as mdates
# Dataframe with 1 or zero
np.random.seed(123)
rows = 10
df = pd.DataFrame(np.random.randint(90,110,size=(rows, 2)), columns=list('AB'))
datelist = pd.date_range(pd.datetime(2017, 1, 1).strftime('%Y-%m-%d'), periods=rows).tolist()
df['dates'] = datelist
df = df.set_index(['dates'])
df.index = pd.to_datetime(df.index)
print(df.head(10))
#print(df)
# Option 1
# -Time series
# -kind is undefined
title = 'time series'
ax = df.plot(title = title, fontsize …Run Code Online (Sandbox Code Playgroud) 我有一个带有一列向量的 Pandas 数据框,我想对其执行矩阵运算。然而,经过仔细检查,这些向量都被包装成字符串,其中似乎嵌入了换行符:
如何将此列中的每个向量转换为 numpy 数组?我试过了
df['Word Vector'].as_matrix
Run Code Online (Sandbox Code Playgroud)
和
np.array(df['Word Vector'])
Run Code Online (Sandbox Code Playgroud)
也
df['Word Vector'] = df['Word Vector'].astype(np.array)
Run Code Online (Sandbox Code Playgroud)
但没有产生预期的结果。任何指针将不胜感激!
我有一个破折号仪表板,我似乎无法重新调整我的辅助 y 轴。有没有办法做到这一点?我试过弄乱 go.Layout 中的域参数和范围参数。我需要按比例缩小音量条形图并占据绘图高度的 10%,这样它就不会与我的烛台重叠。
非常感谢。任何帮助表示赞赏。
import pandas as pd
import pandas_datareader.data as web
import plotly.offline as pyo
import plotly.graph_objs as go
stock_ticker='AAPL'
start_date='2019-04-01'
end_date='2019-05-22'
data=[]
hist_stock_df = web.DataReader(stock_ticker,'iex',start_date, end_date)
data.append(go.Candlestick(x=hist_stock_df.index,
open=hist_stock_df['open'],
high=hist_stock_df['high'],
low=hist_stock_df['low'],
close=hist_stock_df['close'],
name='AAPL'))
data.append(go.Bar(x=hist_stock_df.index,
y=hist_stock_df['volume'].values,
yaxis='y2'))
#y0=1000000
layout=go.Layout(title= 'Candestick Chart of AAPL',
xaxis=dict(title='Date',rangeslider=dict(visible=False)),
yaxis=dict(title='Price'),
plot_bgcolor='#9b9b9b',
paper_bgcolor='#9b9b9b',
font=dict(color='#c4c4c4'),
yaxis2=dict(title='Volume',
overlaying='y',
side='right'))
#scaleanchor='y'))
#scaleratio=0.00000001,
#rangemode='tozero',
#constraintoward='bottom',
#domain=[0,0.1]))
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
Run Code Online (Sandbox Code Playgroud)
我试过弄乱注释的参数
更新
通过这种布局参数的组合,我设法重新调整了条形图,但现在有两个 x 轴,我一直试图弄清楚如何将中间的 x 轴降低。
layout=go.Layout(title= 'Candestick Chart of AAPL',
xaxis=dict(title='Date',rangeslider=dict(visible=False)),
yaxis=dict(title='Price'),
plot_bgcolor='#9b9b9b',
paper_bgcolor='#9b9b9b', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 plotly 绘制条形图,我想添加标题和副标题。(在这里,您可以选择添加标题和副标题的任何示例)
我绘制条形图的代码:
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(x=["Apple", 'Mango', 'Banana'], y=[400, 300, 500]))
fig.show()
Run Code Online (Sandbox Code Playgroud)