我需要使用三次样条(我主要对高阶导数感兴趣),我从 scipy https://docs.scipy.org/doc/scipy-0.18.1/reference/ generated/scipy.interpolate 找到了这个例子。 CubicSpline.html(第一个带有 sin 函数的)。他们有这一行:plt.plot(xs, cs(xs, 2), label="S''"),我认为它应该绘制二阶导数。但 sin 的二阶导数是 -sin,而它们的函数确实看起来都是 -sin。我在这里缺少什么?我怎样才能真正得到二阶导数?谢谢你!

我在下面的代码中创建了 2 个图。JobDomain我在列中有类别值
下面的代码为上述类别生成 2 个图,每个图具有不同的颜色。我需要保持这 3 个类别的两个图具有相同的颜色。
colors = ["#F28E2B", "#4E79A7","#79706E"]
edu = (df.groupby(['JobDomain'])['sal']
.value_counts(normalize=True)
.rename('Percentage')
.mul(100)
.reset_index()
.sort_values('sal'))
coding = (df.groupby(['JobDomain'])['sal2']
.value_counts(normalize=True)
.rename('Percentage')
.mul(100)
.reset_index()
.sort_values('sal2'))
fig, axs = plt.subplots(ncols=2,figsize=(20, 6),sharey=True)
plt.subplots_adjust(wspace=0.4)
p=sns.barplot(x="sal",y="Percentage",hue="JobDomain",data=edu,
ax=axs[0],palette=sns.color_palette(colors))
q=sns.barplot(x="sal2",y="Percentage",hue="JobDomain",data=coding,
ax=axs[1],palette=sns.color_palette(colors))
Run Code Online (Sandbox Code Playgroud) 我是一名理学硕士学生,我曾经使用 OriginPro、Excel 和 Matlab 等商业软件包制作图表和绘图。尽管这些软件提供了良好的用户体验,但也存在一些主要缺点,因为它们依赖于特定的操作系统,并且通常非常昂贵。
因此,我开始使用 matplotlib 库和 VS Code 来学习 Python,但是我遇到了一些库函数和语句的问题,这些函数和语句似乎是 matplotlib 和 numPy 的标准,但它不起作用。
例如,我正在为散点图制作一些模板,但我无法控制小刻度,因为它无法识别语句xaxix和yaxix:
代码示例:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, AutoMinorLocator
.
.
.
fig = plt.figure(figsize=(x_pixels/my_dpi, y_pixels/my_dpi), dpi=my_dpi)
ax = plt.scatter(x*format_x, y*format_y, s = size, alpha = transparency, color = color, label = legend_text)
.
.
.
# Major Ticks
plt.tick_params(axis = 'both', which = 'major', length = majorT_length, direction = majorT_direction, color = majorT_color, …Run Code Online (Sandbox Code Playgroud) 我试图在 matplotlib 中同时绘制真实情况和我的分类。
tsne目前,我仅在应用特征空间并使用以下代码添加边缘后绘制真实情况
from matplotlib.collections import LineCollection
cols=['rgbkm'[lbl] for lbl in list(data.y.cpu().numpy() - 1)]
lc = LineCollection(X_embedded[out_dict['edges']],linewidth=0.05)
fig = plt.figure()
plt.gca().add_collection(lc)
plt.xlim(X_embedded[:,0].min(), X_embedded[:,0].max())
plt.ylim(X_embedded[:,1].min(), X_embedded[:,1].max())
plt.scatter(X_embedded[:,0],X_embedded[:,1], c=cols)
Run Code Online (Sandbox Code Playgroud)
同时,我希望通过以下方式为每个顶点着色:
我正在尝试使用 sns 绘制多线图,但仅将美国线保持为红色,而其他国家/地区为灰色
这是我到目前为止所拥有的:
df = px.data.gapminder()
sns.lineplot(x = 'year', y = 'pop', data = df, hue = 'country', color = 'grey', dashes = False, legend = False)
Run Code Online (Sandbox Code Playgroud)
但这不会将线条更改为灰色。我想在这之后,我可以单独添加红色的美国线......
您好,我刚刚为seaborn 热图创建了自定义cmap,但是当我想使用它时,它没有显示正确的颜色。我已经一步一步完成了:
import seaborn as sns
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matrix = np.array([[149030, 34],[7442, 12]])
norm = matplotlib.colors.Normalize(matrix.min(), matrix.max())
boundaries = [value for value in matrix.flatten().tolist()]
list.sort(boundaries)
colors = [[norm(boundaries[0]), "#90AFC5"],
[norm(boundaries[1]), "#336B87"],
[norm(boundaries[2]), "#2a3132"],
[norm(boundaries[3]), "#763626"]]
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)
fig = plt.figure(figsize=(6, 6))
ax = plt.subplot()
annot = np.array([[f"{matrix[0,0]}", f"{matrix[0,1]}"],
[f"{matrix[1,0]}", f"{matrix[1,1]}"]], dtype=object)
sns.heatmap(matrix,
annot=annot,
annot_kws={"size": 11},
fmt="",
ax=ax,
vmin=matrix.min(),
vmax=matrix.max(),
cmap=cmap,
cbar=True,
cbar_kws={'format': '%.0f%%', 'ticks': boundaries, 'drawedges': True},
xticklabels=False,
yticklabels=False)
Run Code Online (Sandbox Code Playgroud)
如您所见,我的输出有两个蓝色列,但我定义了不同的颜色:

我是 networkx 和 pyplot 的新手,我只是想知道如何绘制局部聚类系数的分布。绘制度数分布更加简单,因为 Degree_histogram 函数可以为您完成此操作,但我不知道该怎么做。
g = nx.erdos_renyi_graph(1000, 0.02, seed = None, directed = False)
gc = g.subgraph(max(nx.connected_components(g)))
lcc = nx.clustering(gc)
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个图表,该图表以前是垂直的......我正在尝试使其水平。发生的情况是我收到错误:
类型错误: barh () 获得参数“宽度”的多个值。
有人可以帮忙吗?
barWidth = 1
plt.barh(r, bars1, color='#7f6d5f', edgecolor='white', width=barWidth, label="Lasso")
plt.barh(r, bars2, bottom=bars1, color='#557f2d', edgecolor='white', width=barWidth, label="Random Forest")
plt.barh(r, bars3, bottom=bars, color='#2d7f5e', edgecolor='white', width=barWidth, label="Decision Tree")
Run Code Online (Sandbox Code Playgroud) 我想绘制二维标量数据,我通常会使用matplotlib.pyplot.imshow或来绘制sns.heatmap。考虑这个例子:
data = [[10, 20, 30], [50, 50, 100], [80, 60, 10]]
fix, ax = plt.subplots()
ax.imshow(data, cmap=plt.cm.YlGn)
Run Code Online (Sandbox Code Playgroud)
现在我还想在顶部和右侧有一维条形图,显示每列/行中的值的总和 - 就像那样sns.jointplot。然而,sns.jointplot似乎只适用于分类数据,生成直方图(带有kind='hist')、散点图等 - 如果我想直接指定单元格的值,我不知道如何使用它。对于seaborn 来说这样的事情可能吗?
我的图中的轴y将是天(一个月内),x轴将是小时。我的数据如下所示:
该字段Cost Difference应构成图中相应字段的阴影。
我有三个方程,如下所示:

如何在 python 中为给定的 X1,Y1,X2,Y2,X3,Y3,t1,t2,t3,S 绘制它们的图形?
我尝试去除平方根,最后得到 4 次方程,然后尝试绘图,但我仍然得到 4 个解,我必须再次验证其中的两个正确根。是否有任何直接的方法或库来绘制这些类型的方程?
我想制作一个 matplotlib colormesh,它不规则地缩放以使某些行和列比其他行和列更宽。
请记住,我对 matplotlib 不太熟悉,并且可能会忽略一个明显的解决方案。
假设我有以下代码:
plt.axes().set_aspect("equal")
maze = plt.pcolormesh(arr)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想减少每行和每列的宽度,以压缩上面迷宫的墙壁。
任何帮助将不胜感激,谢谢。
编辑:这是数据示例。它基本上只是一个由 1 和 0 组成的二维数组,但为了便于阅读,我已将其转换为字符串。
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …Run Code Online (Sandbox Code Playgroud) 在 Python matplotlib 中,如何获得折线图或阶梯图中的线以显示基于 y 值的梯度?
示例图(在 Tableau 中制作):
带有根据 x 值改变梯度的线的阶梯图代码,改编自此答案:
fig, ax = plt.subplots(figsize=(10, 4))
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
y = [2, 3, 9, 10, 2, 9, 0, 1, 9, 1, -8]
T = np.linspace(0,1,np.size(x))**2
s = 1
for i in range(0, len(x)-s, s):
ax.step(x[i:i+s+1], y[i:i+s+1], marker='.', color=(0.0,0.5,T[i]))
ax.tick_params(axis='both', colors='lightgray', labelsize=8)
Run Code Online (Sandbox Code Playgroud)
python ×12
matplotlib ×11
seaborn ×5
heatmap ×2
cubic-spline ×1
curve ×1
linechart ×1
math ×1
networkx ×1
scatter-plot ×1
scipy ×1
sympy ×1