Заполнение фасетных меток из другого фрейма данных в facet_wrap ggplot2

Это нормально. Вы не устанавливаете свой флажок или нет. Вы выбираете один, а держатель вида удерживает его. Вы можете добавить логическую переменную в объект ObjectIncome и сохранить статус выбора вашего элемента.

Вы можете посмотреть на мой пример. Вы можете сделать что-то подобное:

public class AdapterTrashIncome extends RecyclerView.Adapter<AdapterTrashIncome.ViewHolder> {

    private ArrayList<ObjectIncome> myItems = new ArrayList<>();

    public AdapterTrashIncome(ArrayList<ObjectIncome> getItems, Context context){
        try {
            mContext = context;
            myItems = getItems;
            }catch (Exception e){
            Log.e(FILE_NAME, "51: " + e.toString());
            e.printStackTrace();
        }
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public TextView tvContent;
        public CheckBox cbSelect;

        public ViewHolder(View v) {
            super(v);
            tvContent = (TextView) v.findViewById(R.id.tvContent);
            cbSelect = (CheckBox) v.findViewById(R.id.cbSelect);
        }
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        final ObjectIncome objIncome = myItems.get(position);
        String content = "<b>lalalla</b>";
        holder.tvContent.setText(Html.fromHtml(content));

        //in some cases, it will prevent unwanted situations
        holder.cbSelect.setOnCheckedChangeListener(null);

        //if true, your checkbox will be selected, else unselected
        holder.cbSelect.setChecked(objIncome.isSelected());

        holder.cbSelect.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    //set your object's last status
                    objIncome.setSelected(isChecked);
            }
        });

    }
}
2
задан Ibo 13 July 2018 в 23:52
поделиться

1 ответ

Один из вариантов состоит в том, чтобы просто присоединить dMean к df, а затем выполнить грань по метке

df %>% 
  left_join(dMean) %>% 
  ggplot(aes(x=date,
             y=`Duration Average`,
            group=1,
             color=Business,
             size=`MMR Count`
           )) +
  geom_line(size = 1, alpha=0.7) +
  geom_point(alpha=0.7) +
  facet_wrap(~ label, ncol=2) +
  scale_y_log10( limits=c(.1,1000),breaks=c(1,10,100,1000)) +   
  scale_alpha_continuous(range = c(0.5,1), guide='none') + 
  geom_text(aes(label=`Duration Average`,vjust=-1),size=3) +
  geom_text(aes(label=`MMR Count`,vjust=2),size=3,color="brown")

1
ответ дан Ibo 17 August 2018 в 12:05
поделиться
  • 1
    Я сделал это, и он сработал, но я не хочу искажать столбец Business в df – Ibo 14 July 2018 в 03:04
  • 2
    Не могли бы вы рассказать о том, что вы имеете в виду под «искажением столбца« Бизнес »? Поскольку объединение dMean на df не влияет на столбец Бизнес. См. df2 <- df %>% left_join(dMean), а затем identical(df$Business, df2$Business) – G_T 14 July 2018 в 03:30
  • 3
    да, я только заметил, что код не обрабатывает столбец Business, и он использует столбец меток из объединенного фреймворка данных, но у меня проблема с его запуском, я попробовал его на rdrr.io, и он дает мне эту ошибку : Error in combine_vars(data, params$plot_env, vars, drop = params$drop) : At least one layer must contain all variables used for facetting – Ibo 14 July 2018 в 03:38
  • 4
    Убедитесь, что ваш аргумент лица выглядит так facet_wrap(.~ label, ncol=2) – G_T 14 July 2018 в 03:40
  • 5
    Попробуйте удалить период facet_wrap(~ label, ncol=2). – G_T 14 July 2018 в 03:44
Другие вопросы по тегам:

Похожие вопросы: