显示summary_plot时,不显示颜色条。
shap.summary_plot(shap_values, X_train)
Run Code Online (Sandbox Code Playgroud)
我尝试过改变plot_size。当绘图较高时,会出现颜色条,但它非常小 - 看起来不应该。
shap.summary_plot(shap_values, X_train, plot_size=0.7)
Run Code Online (Sandbox Code Playgroud)
这是一个看起来正确的颜色条的示例。
有谁知道这是否可以以某种方式解决?
如何重现:
import pandas as pd
import shap
import sklearn
from sklearn.ensemble import RandomForestRegressor
# a classic housing price dataset
X,y = shap.datasets.boston()
# a simple linear model
model = RandomForestRegressor(max_depth=6, random_state=0, n_estimators=10)
model.fit(X, y)
shap_values = shap.TreeExplainer(model).shap_values(X)
shap.summary_plot(shap_values, X)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,会显示颜色条,但它很小。我选择这样的例子是为了方便检索数据。
嗨,我想用 Python 生成一个热图,类似于所示的热图,其中圆圈的大小表示该单元格中样本的大小。我查看了 seaborn 的画廊并找不到任何东西,而且我认为我无法用 matplotlib 做到这一点。
我正在尝试在seaborn中绘制箱线图,其宽度取决于x轴值的对数。我正在创建宽度列表并将其传递给 seaborn.boxplot 的 widths=widths 参数。
但是,我得到了
raise ValueError(datashape_message.format("widths"))
ValueError: List of boxplot statistics and `widths` values must have same the length
Run Code Online (Sandbox Code Playgroud)
当我调试和检查时,箱线图统计中只有一个字典,而我有 8 个箱线图。无法准确判断问题出在哪里。
我使用 pandas 数据框和seaborn 进行绘图。
更新:如何在 Python 中找到闭区间 [0,3.5] 上函数的最小值?到目前为止,我找到了最大值和最小值,但不确定如何从这里过滤掉最小值。
import sympy as sp
x = sp.symbols('x')
f = (x**3 / 3) - (2 * x**2) + (3 * x) + 1
fprime = f.diff(x)
all_solutions = [(xx, f.subs(x, xx)) for xx in sp.solve(fprime, x)]
print (all_solutions)
Run Code Online (Sandbox Code Playgroud) 如何从 Python 中的绘图中获得y轴上的精确值?我有两个数组vertical_data
,gradient(temperature_data)
并将它们绘制为:
plt.plot(gradient(temperature_data),vertical_data)
plt.show()
Run Code Online (Sandbox Code Playgroud)
图中所示:
我需要零值,但它不完全为零,它是一个浮点数。
如何将以下字符串解析为LocalDateTime
-Object?
20200203092315000000
我总是收到以下异常,但我不明白:
java.time.format.DateTimeParseException: Text '20200203092315000000' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at de.x.struct.type.LocalDateTimeStructField.setBytesValue(LocalDateTimeStructField.java:44)
at de.x.struct.Struct.bytesToStruct(Struct.java:110)
at de.x.struct.StructTest.testStringToStruct(StructTest.java:60)
Run Code Online (Sandbox Code Playgroud)
我的应用程序代码如下所示:
LocalDateTime ldt = LocalDateTime.parse("20200203092315000000", DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSSSSS"));
Run Code Online (Sandbox Code Playgroud) 我想使用seaborn distplot制作一个配对直方图,如下所示。这种图也可称为此处所示的背对背直方图,或如此处所讨论的沿 x 轴反转/镜像的双直方图。
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
green = np.random.normal(20,10,1000)
blue = np.random.poisson(60,1000)
fig, ax = plt.subplots(figsize=(8,6))
sns.distplot(blue, hist=True, kde=True, hist_kws={'edgecolor':'black'}, kde_kws={'linewidth':2}, bins=10, color='blue')
sns.distplot(green, hist=True, kde=True, hist_kws={'edgecolor':'black'}, kde_kws={'linewidth':2}, bins=10, color='green')
ax.set_xticks(np.arange(-20,121,20))
ax.set_yticks(np.arange(0.0,0.07,0.01))
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我使用此处讨论的方法(plt.barh)时,我得到了下面显示的条形图,这不是我想要的。
或者也许我还没有很好地理解解决方法......类似于这些类型的图的 python-seaborn-distplot 的简单/简短实现将是完美的。我编辑了上面第一个图的图,以显示我希望实现的图类型(尽管 y 轴没有颠倒):
任何线索将不胜感激。
我编写了一个函数,可以输出并绘制文本中最常见的单词。请参阅下面的代码和输出。
tf = Counter()
for i in list(tweet['text']):
temp=XXX
for tag, count in tf.most_common(20):
print("{}: {}".format(tag, count))
y = [count for tag, count in tf.most_common(20)]
x = range(1, len(y)+1)
plt.bar(x, y)
plt.title("Term frequencies used inTwitter Data")
plt.ylabel("Frequency")
plt.savefig('us-iran-term-distn.png')
Run Code Online (Sandbox Code Playgroud)
输出是最常见的单词,如下图所示:
blacklivesmatter: 127336
blm: 58619
black: 25973
people: 17960
.
.
lives: 11684
police: 10762
matter: 9902
white: 9766
georgefloyd: 9023
protest: 8734
Run Code Online (Sandbox Code Playgroud)
请问如何在 x 轴上添加最常用的单词?
非常感谢
我已经尝试了所有方法并在此处查看了其他线程,但我找不到如何平滑 matplotlib 图表中的线条。问题是,在大多数教程中,两个轴都有数值,而在我的例子中,对于我的 x 轴,我有一个日期值......
这可能吗?如果没有,是否有任何其他可视化库可以让我做到这一点?
这是我的代码:
date = ["Jan", "Feb", "Mar", "Apr", "May"]
value = [4,12,15,7,25]
plt.plot(date,value)
plt.show()
Run Code Online (Sandbox Code Playgroud)
当前正在输出:
我想这样展示:
多谢!
我需要在许多点上评估用户给出的函数(f')的导数。这些点位于列表中(或 numpy.array、pandas.Series...)。当 f' 取决于 sympy 变量时,我获得了预期值,但当 f' 是常量时,我获得了预期值:
import sympy as sp
f1 = sp.sympify('1')
f2 = sp.sympify('t')
lamb1 = sp.lambdify('t',f1)
lamb2 = sp.lambdify('t',f2)
print(lamb1([1,2,3]))
print(lamb2([1,2,3]))
Run Code Online (Sandbox Code Playgroud)
我得到:
1
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
第二个是好的,但我预计第一个将是一个列表。
这些函数位于矩阵中,是 sympy 运算(例如求导)的最终结果。f1 和 f2 的确切形式因问题而异。