我正在使用ggplot创建一个堆积条形图,如下所示:
plot_df <- df[!is.na(df$levels), ]
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")
Run Code Online (Sandbox Code Playgroud)
这给了我这样的东西:
如何反转堆叠条本身的顺序,以便第1级位于底部,第5级位于每个条形的顶部?
我已经看到了很多关于这方面的问题(例如,如何使用ggplot2上的标识来控制堆积条形图的排序),并且常见的解决方案似乎是按照该级别对数据帧重新排序,因为ggplot正在使用确定顺序
所以我尝试使用dplyr进行重新排序:
plot_df <- df[!is.na(df$levels), ] %>% arrange(desc(levels))
然而,情节也是如此.不论我是按升序还是按降序排列,似乎也没有区别
这是一个可重复的例子:
group <- c(1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4)
levels <- c("1","1","1","1","2","2","2","2","3","3","3","3","4","4","4","4","5","5","5","5","1","1","1","1")
plot_df <- data.frame(group, levels)
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")
Run Code Online (Sandbox Code Playgroud) 我知道这个问题有很多主题,但没有一种方法适合我,所以我发布了我的具体情况
我有一个如下所示的数据框:
data = pd.DataFrame([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])
data['sex'].replace(0, 'Female')
data['sex'].replace(1, 'Male')
data
Run Code Online (Sandbox Code Playgroud)
我想要做的是将性别列中的所有0替换为"女性",将所有1替换为"男性",但是当我使用上面的代码时,数据框中的值似乎没有改变
我是否错误地使用了replace()?或者有更好的方法来有条件地替换价值观吗?
我有一个包装的函数,pyplot.plt
所以我可以使用经常使用的默认值快速创建图形:
def plot_signal(time, signal, title='', xlab='', ylab='',
line_width=1, alpha=1, color='k',
subplots=False, show_grid=True, fig_size=(10, 5)):
# Skipping a lot of other complexity here
f, axarr = plt.subplots(figsize=fig_size)
axarr.plot(time, signal, linewidth=line_width,
alpha=alpha, color=color)
axarr.set_xlim(min(time), max(time))
axarr.set_xlabel(xlab)
axarr.set_ylabel(ylab)
axarr.grid(show_grid)
plt.suptitle(title, size=16)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是,有时候我希望能够返回绘图,以便我可以手动添加/编辑特定图形的内容.例如,我希望能够更改轴标签,或者在调用函数后向绘图添加第二行:
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
plot = plot_signal(np.arange(len(x)), x)
plot.plt(y, 'r')
plot.show()
Run Code Online (Sandbox Code Playgroud)
我已经看到了几个问题(如何从Pandas绘图函数返回matplotlib.figure.Figure对象?和AttributeError:'图'对象没有属性'plot')因此我尝试添加以下内容到功能结束:
return axarr
return axarr.get_figure()
return plt.axes()
但是,它们都返回了类似的错误: AttributeError: 'AxesSubplot' object has no attribute 'plt'
什么是返回绘图对象的正确方法,以便以后编辑?
我有一些代码可以从集合中提取所有文档并将其放到网页上.简化版本如下所示:
var mongodb = require("mongodb"),
express = require("express"),
mongoServer = new mongodb.Server('localhost', 27017),
dbConnector = new mongodb.Db('systemMonitor', mongoServer),
db;
var app = new express();
app.get('/drives', function(req, res) {
db.collection('driveInfo', function(err, collection) {
if (err) throw err;
collection.find({}, function(err, documents) {
res.send(documents);
});
});
});
dbConnector.open(function(err, opendb) {
if (err) throw err;
db = opendb;
app.listen(80);
});
Run Code Online (Sandbox Code Playgroud)
我有一个driveInfo集合,其中包含一长串文档.每个文档都包含嵌套对象.我想做的是,每当有人在他们的浏览器中访问/驱动,将整个集合打印为json对象,以便我可以稍后使用jquery抓取所有内容(api的开头)
但是,我收到错误提示"TypeError:将循环结构转换为JSON".页面上的错误指向这行代码:
collection.find({}, function(err, documents) {
res.send(documents);
});
Run Code Online (Sandbox Code Playgroud)
我不确定问题是什么,或者自我引用的位置.我不是在正确地查询收藏品吗?
如何在所有文件的spacemacs中获得混合行编号(相对行号,但当前行显示绝对行号而不是0)?
我尝试在user-config中设置相对行号,但这似乎不起作用,并且无法弄清楚如何在相对模式中替换0:
(global-linum-mode)
(setq-default dotspacemacs-line-numbers 'relative)
Run Code Online (Sandbox Code Playgroud) 我有一些数据,我使用以下代码操作数据帧:
import pandas as pd
import numpy as np
data = pd.DataFrame([[0,0,0,3,6,5,6,1],[1,1,1,3,4,5,2,0],[2,1,0,3,6,5,6,1],[3,0,0,2,9,4,2,1],[4,0,1,3,4,8,1,1],[5,1,1,3,3,5,9,1],[6,1,0,3,3,5,6,1],[7,0,1,3,4,8,9,1]], columns=["id", "sex", "split", "group0Low", "group0High", "group1Low", "group1High", "trim"])
data
#remove all where trim == 0
trimmed = data[(data.trim == 1)]
trimmed
#create df with columns to be split
columns = ['group0Low', 'group0High', 'group1Low', 'group1High']
to_split = trimmed[columns]
to_split
level_group = np.where(to_split.columns.str.contains('0'), 0, 1)
# output: array([0, 0, 1, 1])
level_low_high = np.where(to_split.columns.str.contains('Low'), 'low', 'high')
# output: array(['low', 'high', 'low', 'high'], dtype='<U4')
multi_level_columns = pd.MultiIndex.from_arrays([level_group, level_low_high], names=['group', 'val'])
to_split.columns …
Run Code Online (Sandbox Code Playgroud) 我试图禁用我的一些活动的操作栏,但无论我尝试什么,我似乎无法删除它.
在我的styles.xml中,我有:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
Run Code Online (Sandbox Code Playgroud)
在我的manifest.xml中,我有:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".NewActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
我的活动布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_new"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
我的app_bar_new布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,它使用服务每5ms收集传感器数据并将其插入sqlite表.在典型的会话中,将有大约40分钟的录音.所有这些代码似乎都运行良好.
我有一个奇怪的问题,如果用户导航到特定的片段,我会收到CursorWindow: Window is full: requested allocation XXX
错误.我不确定导致该错误的特定片段有什么特别之处,并且只发生在这个片段中
有问题的片段包含一个按钮,点击该按钮时会执行以下操作:
.db
文件的副本创建到外部存储片段代码看起来像这样(为简洁起见,许多catch块都被省略了 - 它们大多只是记录信息):
public class SaveFragment extends Fragment implements View.OnClickListener {
Button saveButton;
MainActivity mainActivity;
DBHelper dbHelper;
Boolean subjectDataExists;
MediaScanner mediaScanner;
static ProgressDialog dialog;
public SaveFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_save, container, false);
//Get save button view
saveButton = (Button) view.findViewById(R.id.saveButton);
saveButton.setOnClickListener(this);
//Get DBHelper
dbHelper …
Run Code Online (Sandbox Code Playgroud) sqlite android android-fragments android-cursor android-sqlite
我有一些图像,我想要计算Minkowski /盒计数维度,以确定图像中的分形特征.这是2个示例图像:
10.jpg
:
24.jpg
:
我正在使用以下代码来计算分形维数:
import numpy as np
import scipy
def rgb2gray(rgb):
r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
return gray
def fractal_dimension(Z, threshold=0.9):
# Only for 2d image
assert(len(Z.shape) == 2)
# From https://github.com/rougier/numpy-100 (#87)
def boxcount(Z, k):
S = np.add.reduceat(
np.add.reduceat(Z, np.arange(0, Z.shape[0], k), axis=0),
np.arange(0, Z.shape[1], k), axis=1)
# We count non-empty (0) and non-full boxes (k*k)
return len(np.where((S …
Run Code Online (Sandbox Code Playgroud) 我要求我的学生编写一个 python 程序,其中将一对 6 面骰子掷 100 次的结果存储在一个列表中,然后绘制在直方图中。
我一直将 视为random.choice(1,2,3,4,5,6)
劣等random.randint(1,6)
,直到我注意到使用更好的学生的直方图random.choice
反映了预期结果。例如,在几乎所有使用 的学生的直方图中,12 (6+6) 的掷骰出现率异常高random.randint(1,6)
。有人知道发生了什么事吗?