小编Mr.*_*. T的帖子

Matplotlib - 如何删除颜色条但保持热图位置不变

我制作了一个带有 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)

这是我做的无花果:
我做的无花果

这是我想做的无花果:
我想做的无花果

python matplotlib python-3.x

9
推荐指数
1
解决办法
9656
查看次数

matplotlib xkcd 和黑色图形背景

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)

黑色背景 xkcd 的最小示例:

编辑:我Python 3.5.4在我的 jupyter 笔记本中使用包:

  • matplotlib==2.2.2,后端='TkAgg'
  • jupyter==1.0.0
  • notebook==5.5.0

请注意,当将上述代码作为脚本运行时,我根本没有得到 xkcd 图。仅从 jupyter 笔记本或命令行我才能得到所描述的行为。

python matplotlib

7
推荐指数
1
解决办法
818
查看次数

如何在python中使用matplolib更改日期格式

可能重复:
使用matplotlib在轴标签中创建包含日期和时间的图形

当我的数据在我的字典中有完整的日期时,我不知道如何在使用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)

python matplotlib

6
推荐指数
1
解决办法
8902
查看次数

为什么我不能在numpy中提升到负面的力量?

我正在模拟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如果我正确地回忆起我的数学.

python numpy

6
推荐指数
1
解决办法
1万
查看次数

Python中对数计算的基础会影响速度吗?

我必须在一个程序中使用大量的对数计算.就对数基数而言,该过程不是特定的.我想知道,如果任何基础n(2?10?e?)在Python 3.5 math模块中比其他基础更快,因为可能在引擎盖下所有其他基础a都转化为log_a(x) = log_n(x)/log_n(a).或者基数的选择不会影响计算的速度,因为所有基数都是使用C库以相同的方式实现的?

python logarithm python-3.x

6
推荐指数
1
解决办法
150
查看次数

修改seaborn line relplot图例标题

首先,我是 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 …

python seaborn

6
推荐指数
1
解决办法
6304
查看次数

情节表达情节已经褪色

我在 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)

python plotly jupyter-notebook plotly-express

6
推荐指数
1
解决办法
2148
查看次数

将 AstroPy 与 matplotlib 结合使用,由于使用了 plt.colorbar(),我收到一条警告,要求首先调用 grid(False)

尝试从 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),但继续收到此警告/错误。有谁知道如何解决这个问题?

python matplotlib astropy

6
推荐指数
1
解决办法
3303
查看次数

获取 numpy.random 分布列表

如何获取文档中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),它们不是分布。

python random numpy

5
推荐指数
1
解决办法
273
查看次数

我无法使用应用程序的小部件调整来自定义我的 Django 表单

我安装了 pip3,安装了 Django-widget-tweaks 并在 settings.py 的 INSTALLED_APPS[] 中添加了 widget_tweaks。

当我运行服务器时,我收到错误:

-ImportError: 没有名为“widget_tweaks”的模块

错误图像

django python-3.x

5
推荐指数
1
解决办法
1129
查看次数