我制作了一个带有 3 个轴的图形。每个轴都是具有相同颜色条的热图。我只想保留第三个轴的颜色条并隐藏第一个和第二个颜色条(但保持热图位置不变)。我怎么能做到?
这是我的代码:
fig=plt.figure()
grid = plt.GridSpec(4, 6)
plt.subplot(grid[0:2,0:5])
ax1=sns.heatmap(df_norm, cmap='Reds', vmin=0.05, vmax=0.7)
ax1.axes.get_yaxis().set_visible(False)
ax1.xaxis.tick_top()
ax1.set_xticklabels(col, rotation=90)
plt.subplot(grid[2,0:5])
ax2=sns.heatmap(df_tgfup, cmap='Reds', vmin=0.05, vmax=0.7)
ax2.axes.get_xaxis().set_visible(False)
ax2.axes.get_yaxis().set_visible(False)
ax2.xaxis.tick_top()
ax2.set_xticklabels(col, rotation=90)
plt.subplot(grid[3,0:5])
ax3=sns.heatmap(df_tgfdown, cmap='Reds', vmin=0.05, vmax=0.7)
ax3.axes.get_xaxis().set_visible(False)
ax3.axes.get_yaxis().set_visible(False)
ax3.xaxis.tick_top()
ax3.set_xticklabels(col, rotation=90)
Run Code Online (Sandbox Code Playgroud)
这是我做的无花果:

这是我想做的无花果:

matplotlib我正在尝试使用'sxkcd包在黑色背景下绘制一个图。然而,xkcd似乎在文本和线条周围添加了一种白色轮廓线。在白色背景上你看不到这个白框,但在黑色背景上它真的很烦人。
有谁知道如何解决这个问题?也许可以选择如何更改白色轮廓线以具有背景颜色?
最小的例子:
import numpy as np
import matplotlib.pyplot as plt
plt.style.use(['dark_background'])
plt.xkcd()
plt.rcParams['figure.facecolor'] = 'black'
x = np.linspace(-5, 5)
plt.figure()
plt.plot(x, x**2)
plt.text(0, 10, "Text", color='r', fontsize=20)
plt.xlabel("$x$" )
plt.ylabel("$f(x)$")
plt.show();
Run Code Online (Sandbox Code Playgroud)
:
编辑:我Python 3.5.4在我的 jupyter 笔记本中使用包:
matplotlib==2.2.2,后端='TkAgg'jupyter==1.0.0notebook==5.5.0请注意,当将上述代码作为脚本运行时,我根本没有得到 xkcd 图。仅从 jupyter 笔记本或命令行我才能得到所描述的行为。
当我的数据在我的字典中有完整的日期时,我不知道如何在使用matplotilib绘图时更改日期格式,我只绘制小时,分钟,秒
from datetime import datetime
import matplotlib.pyplot as plt
dico = {'A01': [(u'11/10/12-08:00:01', 2.0), (u'11/10/12-08:10:00', 10.0), \
(u'11/10/12-08:20:01', 5.0), (u'11/10/12-08:30:01', 15.0), \
(u'11/10/12-08:40:00', 7.0), (u'11/10/12-08:50:01', 45.0)],
'A02': [(u'11/10/12-08:00:01', 10.0), (u'11/10/12-08:10:00', 12.0), \
(u'11/10/12-08:20:01', 15.0), (u'11/10/12-08:30:01', 10.0), \
(u'11/10/12-08:40:00', 17.0), (u'11/10/12-08:50:01', 14.0)]}
x = []
y = []
for key in sorted(dico.iterkeys()):
#in Python3
#for key in sorted(dico.keys()):
points = [(datetime.strptime(i[0], "%d/%m/%y-%H:%M:%S"), \
i[1]) for i in dico[key]]
points.sort()
x, y = zip(*points)
plt.plot(x, y, label=key)
# plotting
plt.gcf().autofmt_xdate() …Run Code Online (Sandbox Code Playgroud) 我正在模拟Riemann theta函数:
import numpy as np
def theta(s, n=100):
a_range = np.arange(2, n + 1)
return 1 + sum(1/(a_range ** s))
Run Code Online (Sandbox Code Playgroud)
它不适用于否定s; 例如theta(-2)导致此错误:
1 def theta(s, n=100):
2 a_range = np.arange(1)
----> 3 return 1 + sum(1/(a_range ** s))
4
5 theta(-2)
ValueError: Integers to negative integer powers are not allowed.
Run Code Online (Sandbox Code Playgroud)
为什么?x^-1应该只是1/x如果我正确地回忆起我的数学.
我必须在一个程序中使用大量的对数计算.就对数基数而言,该过程不是特定的.我想知道,如果任何基础n(2?10?e?)在Python 3.5 math模块中比其他基础更快,因为可能在引擎盖下所有其他基础a都转化为log_a(x) = log_n(x)/log_n(a).或者基数的选择不会影响计算的速度,因为所有基数都是使用C库以相同的方式实现的?
首先,我是 Python 和 seaborn 的新手,但是在花了一些时间处理这个问题之后,我相信我的问题没有在其他地方得到解决。如果是这样,我真诚地道歉。
我想使用 seabornrelplot()函数kind='line'将数据框中的数据绘制为多条不同颜色的行。与行相对应的数据由列中的值(cat例如)和我使用hue(在本例中为hue='cat')中的值分类分隔。这是一个简单的例子:
import pandas as pd
import seaborn as sns
df = pd.DataFrame({'x': [0, 1, 3, 4, 7, 1, 2, 5, 6],
'y': [2, 4, 3, 6, 5, 7, 10, 9, 7],
'cat': [0, 0, 0, 0, 0, 1, 1, 1, 1]})
g = sns.relplot(x='x', y='y', hue='cat', kind='line', data=df);
Run Code Online (Sandbox Code Playgroud)
它产生以下图形:

如何在不更改列名称的情况下修改图例标题cat?我相信我的问题是图例标题实际上是作为图例项目实现的,所以我想要做的是删除该项目,然后添加适当的图例标题(我可以使用g._legend.set_title('New title')),但我不知道如何完成这个。
这个问题不同于删除seaborn lineplot图例标题在于relplot()与kind='line'产生FacetGrid …
我在 Jupyter 笔记本中的plotlyexpress 上遇到问题。图中的颜色已褪色,并且与图例中应有的颜色不匹配。有没有人有什么建议?很高兴提供更多信息,但我不确定什么有用 - 我对 Python 仍然很陌生。
fig = px.bar(funded_apps_mask_kewt, x='Grant Expended CY Quarter', y='Grant
Expended Amount', color='AMI Status',title='Long-Form Input')
fig.update_xaxes(categoryorder='category ascending')
fig.show()
AMI Statu | Grant Exp | Grant Exp Q | Grant Exp Q | Grant Exp Year | Grant Exp QY
0 Very Low (50%) 20086.72 Q4 2020 Q4 2020 2020 Q4
1 Urgent Need (120%)20086.7 Q4 2020 Q4 2020 2020 Q4
2 Urgent Need (120%)20086.72 Q4 2020 Q4 2020 2020 Q4
3 Very Low (50%) …Run Code Online (Sandbox Code Playgroud) 尝试从 AstroPy:docs 运行此代码
import matplotlib.pyplot as plt
from astropy.visualization import astropy_mpl_style
plt.style.use(astropy_mpl_style)
from astropy.utils.data import get_pkg_data_filename
from astropy.io import fits
image_file = get_pkg_data_filename('tutorials/FITS-images/HorseHead.fits')
fits.info(image_file)
image_data = fits.getdata(image_file, ext=0)
print(image_data.shape)
plt.figure()
plt.imshow(image_data, cmap='gray')
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)
我收到警告:
第 19 行 plt.colorbar() MatplotlibDeprecationWarning:自 3.5 起,pcolor() 和 pcolormesh() 自动删除网格已被弃用,并将在两个小版本后删除;请先调用 grid(False) 。
我尝试调用 plt.grid(False),但继续收到此警告/错误。有谁知道如何解决这个问题?
如何获取文档中numpy.random描述的可用发行版列表?
我正在编写一个会产生噪音的命令行实用程序。我想获取每个可用的发行版,并获取它们所需的参数以生成命令行选项。
我几乎可以做这样的事情:
import numpy as np
distributions = filter( lambda elt: not elt.startswith("__"), dir(np.random) )
Run Code Online (Sandbox Code Playgroud)
...但是这个列表包含额外的东西(例如shuffle,get_state),它们不是分布。
我安装了 pip3,安装了 Django-widget-tweaks 并在 settings.py 的 INSTALLED_APPS[] 中添加了 widget_tweaks。
当我运行服务器时,我收到错误:
-ImportError: 没有名为“widget_tweaks”的模块

python ×9
matplotlib ×4
python-3.x ×3
numpy ×2
astropy ×1
django ×1
logarithm ×1
plotly ×1
random ×1
seaborn ×1