小编Sco*_*tEU的帖子

在 Jupyter Notebook 中保存 Plotly 离线图像?

我有一些代码正在 Jupyter Notebook 中绘制,我想要做的就是将图像另存为 PNG,这样我就可以在我正在做的一些工作中将其用作高 DPI 图像:

data = [trace1, trace2]
layout = {"title": "", 
          "xaxis": {"title": "", }, 
          "yaxis": {"title": ""}}

fig = go.Figure(data=data, layout=layout)
plotly.offline.iplot(fig)
Run Code Online (Sandbox Code Playgroud)

我不知道如何将它保存为 PNG 文件,特别是将它保存为我的 Jupyter Notebook 文件夹中的 PNG 文件。

我已经尝试了在这里找到的解决方案: How to save Plotly Offline graph in format png?

但我不确定将代码放在哪里,因为我的绘图代码不同。我所做的一切都以错误告终。有什么建议?

python plotly

3
推荐指数
1
解决办法
3858
查看次数

Matplotlib - 将文本标签向右移动“x”点

我有以下代码可以生成气泡图,然后将标签作为文本添加到图中:

fig, ax = plt.subplots(figsize = (5,10))

# create data
x = [1,1,1,1,1,1,1,1,1,1]
y = ['A','B','C','D',
     'E','F','G','H','I','']
z = [10,20,80,210,390,1050,2180,4690,13040,0]

labels = [1,2,8,21,39,105,218,469,1304]

plt.xlim(0.9,1.1)

for i, txt in enumerate(labels):
    ax.annotate(txt, (x[i], y[i]), ha='center', va='center', )

plt.scatter(x, y, s=z*4000, c="#8C4799", alpha=0.3)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我有垂直和水平居中的文本标签(即 1304,469 等),但理想情况下我希望它向右移动,以便远离气泡。我试过ha=right,但它只是轻推它一点点。

有什么我可以用来将它完全远离气泡的东西吗?即代码我可以把它如下for loop

for i, txt in enumerate(labels):
    ax.annotate(txt, (x[i], y[i]), ha='center', va='center', )
Run Code Online (Sandbox Code Playgroud)

python matplotlib

3
推荐指数
1
解决办法
2476
查看次数

Python Pandas-数据透视表输出意外浮动

我有一个包含整数的数据框,但是当我旋转它时,它会创建浮点数,因此我无法弄清原因:

我的数据框(dfDis)如下所示:

    Year    Type                                                Total
0   2006    A talk or presentation                                 34
1   2006    A magazine, newsletter or online publication           33
2   2006    A formal working group, expert panel or dialogue        2
3   2006    Scientific meeting (conference/symposium etc.)         10
4   2006    A press release, press conference or response ...       6
....
Run Code Online (Sandbox Code Playgroud)

我的枢纽代码是:

dfDisB = pd.pivot_table(dfDis, index=['Year'], columns = ['Type'],fill_value=0)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,dfDisB最终会像这样(很抱歉格式化,希望您能理解):

    Total
Type    A broadcast e.g. TV/radio/film/podcast (other than news/press)  A formal working group, expert panel or dialogue    A magazine, newsletter …
Run Code Online (Sandbox Code Playgroud)

python pivot-table dataframe pandas

2
推荐指数
1
解决办法
386
查看次数

如何在Python脚本的背景中播放音频(playsound)?

我只是在写一个小型的python游戏,很有趣,我有一个函数可以开始叙述。

我正在尝试让音频在后台播放,但是很遗憾,在该功能继续之前,首先播放的是mp3文件。

我如何使其在后台运行?

import playsound

def displayIntro():
playsound.playsound('storm.mp3',True)
print('')
print('')
print_slow('The year is 1845, you have just arrived home...')
Run Code Online (Sandbox Code Playgroud)

另外,有什么方法可以控制播放声音模块的音量?

我应该补充一点,我使用的是Mac,但我不喜欢使用playsound,它似乎是我可以使用的唯一模块。

python audio playsound

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

Pyodbc - 使用 WHERE 子句运行 SQL 查询(语法错误)

我正在使用 Pyodbc,并且已连接到数据库。我可以轻松地提取仅使用 SELECT 和 FROM 语句的数据。

但是,当我尝试使用 WHERE 语句时,它会抛出语法错误:

这是代码:

import pyodbc

conn = pyodbc.connect('DSN=QueryBuilder')
cursor = conn.cursor()
cursor.execute('SELECT * FROM dbo.Grantinformation WHERE HoldingOrganisationName = 'university of edinburgh'')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

语法错误:无效语法

如果我运行:

SELECT * 
FROM dbo.Grantinformation
WHERE HoldingOrganisationName = 'university of edinburgh'
Run Code Online (Sandbox Code Playgroud)

在 SQL Server Management Studio 中,SQL 运行良好,所以很明显我在使用 pyodbc 时做错了什么?

非常感谢

python sql pyodbc

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

Python Pandas - Dataframe专栏 - 将'2015/2016'格式的FY转换为'15/16'

我的数据框中有一列(称为'FY'),其格式为财务年度值:2015/20162016/2017.

我想转换整个列,所以它说15/1616/17等等.

我假设你只是从字符串中获取第3,第4和第5个字符,以及第8和第9个字符,但是还没有得到如何做到这一点的线索.

谁能帮助我?谢谢.

python dataframe pandas

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

Python - 重命名元组列标题

我已经检查过:

重命名数据框中的元组列名称

这些回应似乎都不起作用。

我有一个数据框,其中元组作为列标题:

list(dfA)

[('Total', 'Book'),
 ('Total', 'Book Chapter'),
 ('Total', 'Book edited'),
 ('Total', 'Conference Proceeding_Abstract'),
 ('Total', 'Consultancy Report'),
 ('Total', 'Journal Article'),
 ('Total', 'Manual / Guide'),
 ('Total', 'Manual/Guide'),
 ('Total', 'Monograph'),
 ('Total', 'Other'),
 ('Total', 'Policy briefing_report'),
 ('Total', 'Scholarly edition'),
 ('Total', 'Systematic review'),
 ('Total', 'Technical Report'),
 ('Total', 'Technical Standard'),
 ('Total', 'Thesis'),
 ('Total', 'Working Paper')]
Run Code Online (Sandbox Code Playgroud)

我尝试了多种重命名方法,但都行不通。我应该提到,列可能会改变,但这是最大数量(因此我不使用位置)

我尝试过的这段代码是:

dfA.rename(columns = {('Total', 'Book') : 'Book'})
dfA = dfA.rename(columns = {('Total', 'Book') : 'Book'})
dfA.rename(columns={'('Total', 'Book')':"Book"})
Run Code Online (Sandbox Code Playgroud)

我也尝试过将它们转换为字符串,如下所示:

dfA.columns = [str(s) for s in dfA.columns]
Run Code Online (Sandbox Code Playgroud)

然而,它仍然不会改变任何事情。有什么建议么?

python pandas

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

Python Pandas - 迭代并向空白列添加数据

我试图遍历数据帧,对每一行进行分类,并将输出添加到新列的行尾.

它似乎是为每一行添加相同的分类

dfMach = pd.read_csv("C:/Users/nicholas/Desktop/machineSum.csv", encoding='latin-1')
dfNew = dfMach
dfNew["Classification"] = ""

for index, row in dfMach.iterrows():
    aVar = dfMach['Summary'].iat[0]
    aClass = cl.classify(aVar)
    dfNew['Classification'] = aClass
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

谢谢

python pandas

0
推荐指数
1
解决办法
45
查看次数

标签 统计

python ×8

pandas ×4

dataframe ×2

audio ×1

matplotlib ×1

pivot-table ×1

playsound ×1

plotly ×1

pyodbc ×1

sql ×1