我想用热图表示相关矩阵.R中有一个叫做correlogram的东西,但我不认为Python中有这样的东西.
我怎样才能做到这一点?值从-1到1,例如:
[[ 1. 0.00279981 0.95173379 0.02486161 -0.00324926 -0.00432099]
[ 0.00279981 1. 0.17728303 0.64425774 0.30735071 0.37379443]
[ 0.95173379 0.17728303 1. 0.27072266 0.02549031 0.03324756]
[ 0.02486161 0.64425774 0.27072266 1. 0.18336236 0.18913512]
[-0.00324926 0.30735071 0.02549031 0.18336236 1. 0.77678274]
[-0.00432099 0.37379443 0.03324756 0.18913512 0.77678274 1. ]]
Run Code Online (Sandbox Code Playgroud)
我能够根据另一个问题生成以下热图,但问题是我的值被'切'为0,所以我希望有一个从蓝色(-1)到红色(1)的地图,或者类似的东西,但这里低于0的值没有以适当的方式呈现.
这是代码:
plt.imshow(correlation_matrix,cmap='hot',interpolation='nearest')
Run Code Online (Sandbox Code Playgroud) 我有以下代码可以使用 Plotly 创建线图。如何将 Y 轴的范围设置为始终在 [0; 10]?
layout = go.Layout(
title=go.layout.Title(
text="Test",
xref='paper',
x=0
),
xaxis=go.layout.XAxis(
tickmode='linear',
tickfont=dict(
size=10
),
title=go.layout.xaxis.Title(
font=dict(
size=14,
color='#7f7f7f'
)
)
),
yaxis=go.layout.YAxis(
title=go.layout.yaxis.Title(
text=y,
font=dict(
size=14,
color='#7f7f7f'
)
)
)
)
data = [go.Scatter(x=x1, y=y1)]
Run Code Online (Sandbox Code Playgroud) 有关在数字列表中检索部分匹配项的方法,请访问:
但是,如果您正在寻找如何检索字符串列表的部分匹配项,您会在下面的答案中找到简明扼要地解释的最佳方法。
SO:部分匹配的 Python 列表查找显示了如何返回 a bool
,如果 alist
包含部分匹配(例如begins
,ends
, 或contains
)某个字符串的元素。但是你怎么能返回元素本身,而不是True
或False
l = ['ones', 'twos', 'threes']
wanted = 'three'
Run Code Online (Sandbox Code Playgroud)
在这里,链接问题中的方法将返回True
使用:
any(s.startswith(wanted) for s in l)
Run Code Online (Sandbox Code Playgroud)
那么如何返回元素'threes'
呢?
我正在尝试使用多索引DataFrame中的一个索引创建一个新的DataFrame.
A B C
first second
bar one 0.895717 0.410835 -1.413681
two 0.805244 0.813850 1.607920
baz one -1.206412 0.132003 1.024180
two 2.565646 -0.827317 0.569605
foo one 1.431256 -0.076467 0.875906
two 1.340309 -1.187678 -2.211372
qux one -1.170299 1.130127 0.974466
two -0.226169 -1.436737 -2.006747
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想要这样的事情:
In: df.ix[level="first"]
Run Code Online (Sandbox Code Playgroud)
和:
Out:
A B C
first
bar 0.895717 0.410835 -1.413681
0.805244 0.813850 1.607920
baz -1.206412 0.132003 1.024180
2.565646 -0.827317 0.569605
foo 1.431256 -0.076467 0.875906
1.340309 -1.187678 -2.211372
qux -1.170299 1.130127 0.974466
-0.226169 -1.436737 -2.006747
` …
Run Code Online (Sandbox Code Playgroud) 是否可以在Jupyter笔记本中使用破折号应用程序,而不是在浏览器中提供和查看?
我的目的是,使得鼠标悬停在一个图表生成用于另一曲线图所需要的输入Jupter笔记本内链接的曲线图.
使用seaborn.pydata.org和Python DataScience手册中的示例,我可以使用以下代码段生成组合分布图:
码:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# some settings
sns.set_style("darkgrid")
# Create some data
data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)
data = pd.DataFrame(data, columns=['x', 'y'])
# Combined distributionplot
sns.distplot(data['x'])
sns.distplot(data['y'])
Run Code Online (Sandbox Code Playgroud)
如何将此设置与垂直线组合,以便我可以说明这样的阈值:
我知道我可以用matplotlib这样做动态直方图子图用线标记目标,但我真的很喜欢seaborn情节的简单性,并且真的想知道是否可以更优雅地做到这一点.(是的,我知道seaborn建立在顶级matplotlib上)
谢谢你的任何建议!
如何设置线条的颜色plotly
?
import plotly.graph_objects as go
from plotly.subplots import make_subplots
fig = make_subplots(rows=2, cols=1, subplot_titles=('Plot 1', 'Plot 2'))
# plot the first line of the first plot
fig.append_trace(go.Scatter(x=self.x_axis_pd, y=self.y_1, mode='lines+markers', name='line#1'), row=1, col=1) # this line should be #ffe476
Run Code Online (Sandbox Code Playgroud)
我试过了,fillcolor
但我怀疑这不起作用,因为这是一条简单的线路。
我有一个由两个不同对象组成的CSV文件的大型数据集:"object_a"和"object_b".这些实体中的每一个都具有数字"tick"值.
Type, Parent Name, Ticks
object_a, 4556421, 34
object_a, 4556421, 0
object_b, 4556421, 0
object_a, 3217863, 2
object_b, 3217863, 1
......
Run Code Online (Sandbox Code Playgroud)
每个对象共享一个"父名称"值,因此在大多数情况下,每个对象中的一个将共享一个"父名称"值,但情况并非总是如此.
这个数据集有两个目标:
在父名称下提取所有object_a,其中i)有> 1个object_a和; ii)object_a有0个刻度,但另一个object_a有> 0个刻度.即只是零刻度的那个
在父名称下提取所有object_b,其中i)有> = 1 object_a和; ii)object_b有0个刻度,但object_a有> 0个刻度
我的第一种方法是为两个任务分别使用两个函数,以块的形式读取CSV文件(通常大小为1.5GB),并根据父名称将提取的行输出到另一个csv文件...
def objective_one(group_name, group_df):
group_df = group_df[group_df['Type'] == 'object_a']
if len(group_df) > 1:
zero_tick_object_a = group_df[group_df['Ticks'] == 0]
if len(zero_click_object_a) < len(group_df):
return zero_click_object_a
else:
return pd.DataFrame(columns=group_df.columns)
else:
return pd.DataFrame(columns=group_df.columns)
def objective_two(group_name, group_df):
object_a_in_group_df = group_df[group_df['Type'] == 'object_a']
object_b_has_no_clicks_in_group_df = group_df[(group_df['Type'] == 'object_b') & (group_df['Ticks'] == 0)] …
Run Code Online (Sandbox Code Playgroud) 正确执行加法模型有一些问题。
当我运行此代码时:
import statsmodels as sm
import statsmodels.api as sm
decomposition = sm.tsa.seasonal_decompose(df, model = 'additive')
fig = decomposition.plot()
matplotlib.rcParams['figure.figsize'] = [9.0,5.0]
Run Code Online (Sandbox Code Playgroud)
我收到了这条消息:
ValueError: 您必须指定一个句点或 x 必须是一个带有 DatetimeIndex 且频率未设置为 None 的 Pandas 对象
上面我从这个地方截取的屏幕https://towardsdatascience.com/analyzing-time-series-data-in-pandas-be3887fdd621
python ×10
plotly ×4
pandas ×3
matplotlib ×2
charts ×1
correlation ×1
dataframe ×1
fill ×1
filter ×1
indexing ×1
list ×1
plot ×1
plotly-dash ×1
python-3.x ×1
seaborn ×1
select ×1
string ×1
time-series ×1